当我尝试在ExtJS中创建一个新对象时,我遇到了麻烦。首先,我创建一个新对象,然后创建同一个类的另一个对象。在那个班里,我有一个叫做“形式”的财产。此属性的类型为“object”。我将在下面显示:
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的错误,或者每次创建新对象时我真的需要克隆类中的所有对象吗?
答案 0 :(得分:2)
您需要在initComponent
中创建表单,因为您需要为每个ExampleClass
实例创建单独的实例。
initComponent: function() {
this.form = {
last: null
};
...
在您当前的实现中,只有一个 form
对象,因为Ext.define
仅被调用一次。然后在实例化时,将对现有对象的引用传递给实例。