有人可以向我解释这种行为吗?让我们声明一个类:
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”未声明为静态!我完全不明白。