なぜこの現象が起こっているのかわかりません。私はオブジェクトを定義し、このオブジェクトの3の配列を作ると言うことができます。配列内のオブジェクトを変更すると、オブジェクトのすべてのインスタンスに影響しますか?誰かがこれがなぜなのか説明できますか?また、オブジェクトの独立した "Copies"を持つ配列を作成して、目的の動作を得るにはどうすればよいですか?ありがとう!プリミティブ(文字列、数値、ブール値、ヌルシンボル、未定義)とは対照的に配列内のオブジェクトを操作すると、配列外のオブジェクトが変更されますか?
例
testObject = {"value1":"a","value2":"b"};
objArray = [];
for(i=0; i < 3; i++){
var newobj = testObject; //make a new testObject
objArray.push(newobj); //push new object to array
}
delete objArray[0].value2 // Desired, delete value 2 ONLY from array object 0
objArray[2].value2 //Undefined? Why is value2 missing from object 2
testObject.value2 //Undefined? Why is value2 missing from original object?
* "' var newobj = testObject; //新しいtestObjectを作成する "*:コメントが間違っています。これは新しいオブジェクトを作成するのではなく、既存のオブジェクトを共有します。 – trincot
[JavaScriptオブジェクトを正しくクローンするにはどうすればいいですか?](https://stackoverflow.com/questions/728360/how-do-i-correctly-clone-a-javascript-object) – dprogramz
ところで、 value1'と 'value2'は単にプレースホルダの名前か、実際には配列のようなObjectを使うつもりですか? –