[英]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) {
}});
我对某些观点感到困惑。
options是像这样的数组{“ appName”:“ xyz”,“ appId”:“ 1141”}
我注意到分配的this.options在_self.oprions.appName这样的addReportInAppButton函数中使用,
这是如何运作的? 是clarify.safeMixin复制此对象吗?
在这两个函数中,_self等于此值,可以安全地将其删除。 这很可能只是一个约定,可能是因为例如要在其中访问_self时必须声明_self。 回调:
var _self = this; on(someButton, 'click', function() { this.foo() // this !== _self _self.foo() // used to access properties of the original context });
是的,safeMixin将所有选项的属性复制到_self.options中。 safeMixin还确保如果您复制一个函数,则可以调用此函数。该函数继承于此函数,并且可以按预期运行。
您可以在dojo / _base / lang中使用mixin()函数,但是如果尝试调用此函数,则会抛出错误。
dojo / _base / declare上的文档为safeMixin提供了一些更详细的示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.