Поведение наследования ExtJs

Может кто-нибудь, пожалуйста, объясните мне это поведение. Давайте объявим класс:

Ext.define('baseClass',{
    a:null,
    ar:[],

    add:function(v) {
        this.ar.push(v);
    },
    sayAr:function() {
        console.log(this.ar);
    },

    setA:function(v) {
        this.a= v;
    },
    sayA:function() {
        console.log(this.a);
    }
});

Теперь я создаю два объекта

var a = Ext.create('baseClass');
var b = Ext.create('baseClass');

Проверить свойство

a.setA(1);
b.setA(2);

a.sayA();
b.sayA();

Это выводит

1
2

Все хорошо, но

a.add(1);
b.add(2);

a.sayAr();
b.sayAr();

Получаем

[1,2]
[1,2]

Этого я не понимаю. Почему он использует отдельные свойства «a», но один массив «ar» для обоих объектов. "ar" не объявляется статическим! Я вообще не понимаю.

6
задан mik 15 August 2012 в 07:08
поделиться