我假设选项的所有成员只能在窗口小部件实例中访问。我给你举个例子。
(function (factory) {
//Register as Amd module
} (function( $ ){
$.widget('workbench', $basic, {
options: {
toolname: undefined,
tools: [],
},
_create: function(){
if(this.options.name == undefined){
alert('Warning, parameter is missing');
this._destroy();
}
this.options.tools.push(this.options.name);
for(var i =0; i < this.options.tools.length; i++){
console.log(this.options.tools[i]);
}
},
});
}));
如果我现在创建小部件工作台的实例
$('<div>').workbench({toolname: 'A'});
$('<div>').workbench({toolname: 'B'});
我得到了输出
A
A
B
但我认为它应该是
A
B
我知道克隆元素时会通过引用复制数组。但我不明白为什么这两个实例共享相同的工具数组。
感谢您的帮助。