これがなぜ起こっているのかを理解しようとしています。奥行きの違う振る舞いをするJavaScriptオブジェクトと配列参照
私は、JavaScript配列、オブジェクト、およびオブジェクトへの参照を少し実験していました。それから私はもう理解していないポイントに達しました。
私はオブジェクトを保持する配列を作成します。そのオブジェクトへの参照をしてプロパティを変更すると、オリジナルとリファレンスの値が自動的に変更されます。明らかにそれは参照でありコピーではないからです。
もう1つのオブジェクトを保持している配列を持つ配列を作成すると、同じことが予想されましたが、何らかの理由で元のオブジェクトはそのまま残ります。
おそらく、私は今は分かりませんが、本当に簡単な説明があります。誰かが私にそれを説明することができますか?
ありがとうございます!
var foo = [
{
"bar": "bar"
}
];
var ref = foo[0];
ref.bar = "new bar";
console.info(foo[0].bar); // output: new bar
console.info(ref.bar); // output: new bar
console.info(foo[0].bar === ref.bar); // output: true
var foo2 = [
{
"bar2": [
{ "nested": "nested" }
]
}
];
var ref2 = foo2[0].bar2;
ref2.nested = "nested 2";
console.info(foo2[0].bar2[0].nested); // output: nested
console.info(ref2.nested); // output: nested 2
console.info(foo2[0].bar2[0].nested === ref2.nested); // output: false
ありがとうございます!本当にばかげて... hahaha – ius