Sadece bunun neden olduğunu anlamaya çalışıyorum.Javascript nesneleri ve dizileri referanslar farklı derinliklerde farklı davranıyor davranış
Nesneler için javascript dizileri, nesneler ve başvurularla biraz deneme yapıyordum. Sonra artık anlamadığım bir noktaya ulaştım.
Nesneyi tutan bir dizi oluşturuyorum; sonra o nesneye bir referans yaptığımda ve bir özelliği değiştirdiğimde; Orijinalin ve referansın değerleri otomatik olarak değiştirilir. Açıkçası bir referans değil, bir kopya olduğu için.
Bir nesneyi başka bir nesneyle birlikte tutan ve bir nesneyi içeren bir dizi oluşturduğumda aynı şeyi bekliyordum, ancak bu durumda orijinal nesne el değmemiş halde kalıyor.
Muhtemelen Şu anda bilmediğim gerçekten basit bir açıklamaya sahiptir. Birisi bunu bana açıklayabilir mi?
Teşekkürler!
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
Teşekkürler! Gerçekten aptal ... hahaha – ius