我已经在我的部件花了很多时间调试strage错误的。该组件已禁用/启用按钮,但我没有看到效果。过了一段时间,我注意到,按钮在我创建的最后一个组件实例中发生了变化。声明看起来如此:道场声明 - 默认属性(实例或静态)范围
constructor: function(options) {
for(var i in options){
this[i] = options[i];
}
},
domNode: null,
grid: null,
data: [],
buttons: {},
在调试,我见过的,那个时候我创造我的对象的第二个实例:
new CustomComponent({domNode: dojo.byId('secondid')})
的按钮都已经设置 - 它们的实例为所有人共享实例!
在最终的效果,我在我的组件创建一个静态变量。这不是我想要的!该声明有什么错误?我应该如何为每个组件实例分别设置“按钮”实例?
那么技术上我的组件是一个小部件,但它不会从任何继承。我认为这不是问题,似乎declare中的所有内容都是原型,它被复制到子实例,所以通过按钮:{}您创建一个新的Object,它将被复制到所有实例。所以正确的方法是在构造函数中创建该对象。 –
你为什么不从WidgetBase继承?它使事情变得容易很多,我没有看到任何缺点。 – g00glen00b
我不需要WidgetBase中的任何东西,至少我现在不知道任何这样的东西:) –