誰かが私にこの振る舞いを説明してもらえますか?クラスを宣言しましょう:
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);
}
});
次に、2つのオブジェクトを作成します
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」プロパティを使用するのに、両方のオブジェクトに1つの「ar」配列を使用するのですか。「ar」は静的として宣言されていません!まったくわかりません。