インスタンスa
のプロパティを変更すると、インスタンスb
の同じプロパティが変更される理由がわかりません。JavascriptのOOPを理解する:他のインスタンスを変更するインスタンス
var A = function(){
};
A.prototype.data = {
value : 0
};
var a = new A();
var b = new A();
console.log(a.data.value, b.data.value); // 0, 0
a.data.value = 5;
console.log(a.data.value, b.data.value); // 5, 5
は、プロトタイプのキーワードはdata
変数インスタンス変数を作るべきではないでしょうか。
これは期待通りに実行される。この例では場合ではないと思わ:
var B = function(){
this.data = {
value : 0
};
};
var i = new B();
var j = new B();
console.log(i.data.value, j.data.value); // 0, 0
i.data.value = 5;
console.log(i.data.value, j.data.value); // 5, 0
私はプロトタイプの方法が仕事を文句を言わない理由として困惑しています。たぶん私はいくつかの概念的な知識が欠けているでしょう。