0
我尝试在ExtJS中创建新对象时遇到了问题。首先我创建一个新对象,然后创建同一个类的另一个对象。在那个班里,我有一个名为'form'的财产。这个属性的类型是'object'。我将在下面显示:使用ExtJS创建对象时出错
Ext.define('ExampleClass', {
extend: 'Ext.Component',
form: {
last: null
},
initComponent: function() {
if(this.form.last == null) {
this.form.last = this;
}
else {
console.log(this.form);
}
this.callParent(arguments);
}
});
的代码很简单。当我创建第一个对象时,确定。当我创建第二个对象时,控制台显示第一个对象(输入else条件)。只有当我有一个对象作为类的一个属性时才会发生这种情况。这可能是Ext的一个bug,或者我真的需要在每次创建新对象时克隆类中的所有对象?
换句话说,OP创建窗体的方式,它存储在'ExampleClass'的原型中,并被所有实例共享。我从不向原型添加任何不是字符串,数字或布尔值的对象以避免此错误。 –
我现在正在我的所有应用程序中执行此操作。删除所有不是字符串,数字或布尔值的属性。感谢你的回答。 –
这不是一个错误,它只是继承在JavaScript中的工作方式。参见http://jsfiddle.net/GseUG/一个简单的例子。 (但是,这是我经常遇到的常见错误) – user123444555621