使用ExtJS创建对象时出错

时间:2011-10-19 19:53:21

标签: javascript extjs

当我尝试在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的错误,或者每次创建新对象时我真的需要克隆类中的所有对象吗?

1 个答案:

答案 0 :(得分:2)

您需要在initComponent中创建表单,因为您需要为每个ExampleClass实例创建单独的实例。

initComponent: function() {
    this.form = {
        last: null
    };
    ...

在您当前的实现中,只有一个 form对象,因为Ext.define仅被调用一次。然后在实例化时,将对现有对象的引用传递给实例。