Sind Variablen / Objekte als Wert übergeben und warum kann ich die Objekteigenschaft nicht mit Variablen in Javascript ändern? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Ist JavaScript eine Pass-by-Reference- oder Pass-by-Value-Sprache? 29 answers

Angenommen, ich habe ein Objekt als:

var obj = {
        len: 4,
        bred: 5
    }

Nun nehme ich an, ich ordne dieses Objekt einer Variablen zux wievar x = obj;. Soweit ich es verstehe, erstellt es eine Kopie vonobj und ordne diese Kopie @ x - das ist als Wert übergeben. Wenn ich jetzt eine Eigenschaft von @ ändex dann ändert es auch diese Eigenschaft des Objekts obj. Z.B

x.len = 99

Dann beideobj.len undx.len werden99. Betrachten Sie andererseits das folgende Szenario:

var r = 2, s = 3, t = 4; 
s = r;
s = 88;

Jetztr wird als Wert an @ übergebs Dass eine Kopie vonr wurde @ gegebs. Also @ ändes zu88 ändert den ursprünglichen Wert von @ nicr variable. @ Eingebr in der Konsole gibt noch2.

Frage 1 Wenn Variablen (einschließlich Objekte) in JavaScript als Wert übergeben werden, warum wird @ dann geänderx.len ändere das Originalobj.len, auch

Ein weiteres Problem ist, dass ich die Eigenschaft eines Objekts beim Zuweisen zu einer Variablen nicht ändern kann. Betrachten Sie dieses Szenario:

var obj2 = {
        len: 4,
        bred: 5
    }
var x2;
x2 = obj.len;

Now Typingx2 in der Konsole gibt einfach @ zurü4. Aber wenn ich versuche, den Wert von @ zu ändex2 sowiex2 = 77; dann ändert sich das nichtobj2.len.

Frage 2 Warum kann ich die Eigenschaft eines Objekts nicht mit einer Variablen ändern?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage