Nur versuchen zu verstehen, warum das passiert ist.Javascript Objekte und Arrays Referenzen verhalten sich unterschiedlich dependens auf die Tiefe
Ich experimentierte ein wenig mit Javascript-Arrays, Objekten und Verweisen auf die Objekte. Dann habe ich einen Punkt erreicht, an dem ich nichts mehr verstehe.
Ich erstelle ein Array, das ein Objekt enthält; dann, wenn ich einen Verweis auf das Objekt mache und eine Eigenschaft ändere; Die Werte des Originals und der Referenz werden automatisch geändert. Offensichtlich, weil es eine Referenz und keine Kopie ist.
Ich habe das gleiche erwartet, wenn ich ein Array mit einem Objekt erzeuge, das ein anderes Objekt hält und mit einem anderen Array verknüpft, aber in diesem Fall bleibt das ursprüngliche Objekt irgendwie unberührt.
Wahrscheinlich Es hat eine wirklich einfache Erklärung, die ich gerade nicht weiß. Jemand könnte mir das erklären?
Danke!
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
danke! Wirklich albern ... hahaha – ius