Angenommen, ich habe ein Objekt als:Sind Variablen/Objekte nach Wert übergeben und warum kann ich Objekteigenschaft nicht mit Variable in Javascript ändern?
var obj = {
len: 4,
bred: 5
}
Jetzt nehme ich dieses Objekt einer Variablen x
als var x = obj;
zuweisen. Soweit ich es verstehe, erstellt es eine Kopie von obj
und weisen Sie diese Kopie x
- das ist nach Wert übergeben. Jetzt, wenn ich eine Eigenschaft von x
ändere, dann ändert es auch diese Eigenschaft des Objekts obj. Z.B.
x.len = 99
Dann werden beide obj.len
und x.len
werden 99
. Auf der anderen Seite dieses Szenario vor:
var r = 2, s = 3, t = 4;
s = r;
s = 88;
Jetzt r
von Wert zu s
dass s
eine Kopie r
wurde s
gegeben geben wird. Die Änderung von s
zu 88
ändert also nicht den ursprünglichen Wert von r
Variable. Die Eingabe r
in der Konsole gibt immer noch 2
.
Frage 1: Wenn Variablen (Objekte enthalten) sind je nach Wert in JavaScript übergeben, warum dann x.len
Änderung der ursprünglichen obj.len
auch nicht zu ändern?
Ein anderes Problem ist, dass ich die Eigenschaft eines Objekts nicht ändern kann, wenn es einer Variablen zuweist. Betrachten Sie dieses Szenario:
var obj2 = {
len: 4,
bred: 5
}
var x2;
x2 = obj.len;
Jetzt eingeben x2
in der Konsole einfach 4
zurückgibt. Aber wenn ich versuche, den Wert von x2
wie x2 = 77;
zu ändern, dann ändert sich das nicht obj2.len
.
Question2: Warum kann ich Objekteigenschaft nicht mit einer Variablen ändern?
Was Sie in Ihrem ersten Absatz beschreiben, ist keine Passage nach Wert, es ist durch Bezugnahme. –
Nur Objekte sind vom Referenzdatentyp Ich glaube, 'var xyz' sind Primitive Datentypen. –
Eine gute lesen Sie hier http://javascriptssexy.com/javascript-objects-in-detail/ –