用ExtJS创建对象时出错

Error while creating objects with ExtJS

本文关键字:出错 创建对象 ExtJS      更新时间:2023-09-26

当我尝试在ExtJS中创建一个新对象时,我遇到了麻烦。首先创建一个新对象,然后创建同一类的另一个对象。在那个类中,我有一个属性,叫做form。此属性的类型为"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的一个bug,或者我真的需要克隆类中的所有对象,每次我创建一个新对象?

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

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

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