繁体   English   中英

dojo声明构造函数以及此对象和safemixin

[英]dojo declare constructor and this object and safemixin

我正在阅读写道场的应用程序代码。

define(["dojo/ready", "dojo/_base/declare"], function(ready, declare) {
  return declare("application.main", null, {
    constructor: function(options) {
        var _self = this;
        this.options = {};
        declare.safeMixin(_self.options, options);

    }
    addReportInAppButton: function() {
        var _self = this;
        if (_self.options.appName) {
 }});

我对某些观点感到困惑。

  1. 在构造函数中,addReportInAppButton使用关键字并将其分配给_self属性。
  2. 声明.safeMixin(_self.opt.ons,选项)

options是像这样的数组{“ appName”:“ xyz”,“ appId”:“ 1141”}

我注意到分配的this.options在_self.oprions.appName这样的addReportInAppButton函数中使用,

这是如何运作的? 是clarify.safeMixin复制此对象吗?

  1. 在这两个函数中,_self等于此值,可以安全地将其删除。 这很可能只是一个约定,可能是因为例如要在其中访问_self时必须声明_self。 回调:

     var _self = this; on(someButton, 'click', function() { this.foo() // this !== _self _self.foo() // used to access properties of the original context }); 
  2. 是的,safeMixin将所有选项的属性复制到_self.options中。 safeMixin还确保如果您复制一个函数,则可以调用函数。该函数继承于此函数,并且可以按预期运行。

您可以在dojo / _base / lang中使用mixin()函数,但是如果尝试调用此函数,则会抛出错误。

dojo / _base / declare上文档为safeMixin提供了一些更详细的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM