JavaScriptで新しいオブジェクトをインスタンス化して、そのオブジェクトのプロパティの1つとして別のオブジェクトがある場合、そのオブジェクトは常に同じオブジェクトを参照しますか?例えば新しいオブジェクトのインスタンス化参照同じプロパティ
function test() {}
test.prototype.state = {
num: 0
};
var obj1 = new test();
var obj2 = new test();
obj1.state.num = 1;
console.log(obj1.state.num,obj2.state.num); // Outputs 1 1 instead of 1 0
また、何それは新しいオブジェクトのプロパティにそれがインスタンス化されるたびに作成させるための適切な方法だろうか?
これはプロトタイプのためのものです。プロトタイプではなく、コンストラクター関数自体がプライベート変数である場合は、オブジェクトをインスタンス化するたびに異なるものを取得します – Redu