Height erwähnt: „Die Parameter aller Funktionen in ECMAScript werden als Wert übergeben“.
Das ist, als würde man einen Wert von einer Variablen in eine andere kopieren.
Dann ist der Wert des Referenztyps auch derselbe wie der Basistyp?
Beispiel 1:
var person = { name : "leaf" }; function obj(o){ o.name = "kafu"; return o; } var result = obj(person); console.log(result.name);// kafu console.log(person.name);// kafu
Warum scheint es, dass die Parameter des Referenztyps als Referenz übergeben werden?
Beispiel 2:
var person = { name : "leaf" }; function obj(o){ o = { name : "kafu" }; return o; } var result = obj(person); console.log(result.name);// kafu console.log(person.name);// leaf
Unterschied:
In Beispiel 1 wird person tatsächlich an obj() übergeben , Das heißt, die Referenz des Personenobjekts zu kopieren und an o zu übergeben (kann als Adresse betrachtet werden, und o zeigt gleichzeitig auf dasselbe Objekt). Objekt, auf das sie gemeinsam zeigen. Da sich zu diesem Zeitpunkt nur ein Objekt im Speicherbereich befindet.
Zwei Beispiele. Die o-Adresse zeigt auf ein anderes neu erstelltes Objekt. Zu diesem Zeitpunkt befinden sich zwei Objekte im Speicher, auf die o zeigt nach Person.
Warum heißt es, dass „die Parameter aller Funktionen in ECMAScript als Wert übergeben werden“.
Ich werde nicht über die Grundtypen sprechen.
Bei Referenztypen ist die Übergabe von Parametern eine Referenzkopie des Objekts. Dies entspricht der Übergabe einer neuen Adresse nach einer Kopie. Diese kopierte Adresse kann tatsächlich als Übergabe nach Wert verstanden werden (auch als gemeinsame Übergabe bezeichnet).
Verwenden Sie Objekte zur Übergabe als Parameter
Bei der Übergabe von Objekten als Parameter müssen Sie die Reihenfolge der Parameter nicht berücksichtigen, was sehr nützlich ist.
Das obige ist der detaillierte Inhalt vonSo übergeben Sie ein Objekt in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!