Ext.Create返回已经实例化的类

时间:2012-03-27 20:51:09

标签: extjs4

我正在通过Ext.define (...Ext.create (...使用extjs类对象。当我在另一个类中存储多个类的实例时,我看到了一些奇怪的行为:类不是唯一的,看起来Ext.create正在返回我之前的实例化。

查看我的问题here的JSFiddle。确保在浏览器中查看控制台日志以查看输出和怪异。

1 个答案:

答案 0 :(得分:2)

您在Ext.define中设置了一个数组。这意味着您将设置对象的原型,该原型在类的所有实例之间共享。因此,这不是一个意外的行为。在构造函数中创建数组,如下所示:

Ext.define ('Sunglasses', {
    brand : '',

    constructor : function (args) {
        this.lenses = [];
        this.brand = args.brand;
    },
    addLenses : function (lenses) {
        this.lenses.push (lenses);
    }    
});