Heim > Web-Frontend > js-Tutorial > Pass-by-Value vs. Pass-by-Reference in JavaScript: Wie wirken sie sich auf Funktionsargumente aus?

Pass-by-Value vs. Pass-by-Reference in JavaScript: Wie wirken sie sich auf Funktionsargumente aus?

Barbara Streisand
Freigeben: 2024-12-22 15:21:13
Original
912 Leute haben es durchsucht

Pass-by-Value vs. Pass-by-Reference in JavaScript: How Do They Affect Function Arguments?

Pass-by-Value und Pass-by-Reference in JavaScript verstehen

Bei der Übergabe von Werten oder Objekten an Funktionen in JavaScript ist dies von entscheidender Bedeutung das Konzept der Pass-by-Reference und Pass-by-Value zu verstehen. Kurz gesagt, Grundelemente (z. B. Zahlen, Zeichenfolgen, boolesche Werte) werden als Wert übergeben, was bedeutet, dass alle innerhalb der Funktion vorgenommenen Änderungen keinen Einfluss auf den ursprünglichen Wert außerhalb der Funktion haben.

Objekte werden jedoch als „Kopie von“ übergeben eine Referenz.“ Das bedeutet, dass bei der Übergabe eines Objekts an eine Funktion ein neuer Verweis auf das ursprüngliche Objekt erstellt wird. Alle innerhalb der Funktion am Inhalt des Objekts vorgenommenen Änderungen wirken sich auf das ursprüngliche Objekt aus.

Fallstudie: Beispiel einer Rechteckfunktion

Im bereitgestellten Beispiel haben wir eine Rechteckfunktion Das erfordert ein Konfigurationsobjekt und ein optionales My-Objekt. Intern definiert es ein lokales my-Objekt, wenn es in den Argumenten nicht vorhanden ist. Dieses my-Objekt speichert die Länge und Breite des Rechtecks.

Die Flächenfunktion innerhalb der Rechteckfunktion berechnet die Fläche des Rechtecks ​​anhand der im my-Objekt gespeicherten Länge und Breite.

Wenn wir Rufen Sie die Rechteckfunktion auf und weisen Sie das zurückgegebene Objekt myRec zu. Wir erstellen eine Kopie der Referenz auf das my-Objekt. Alle am Inhalt von my vorgenommenen Änderungen (z. B. Aktualisierung von my.l und my.w) innerhalb der Rechteckfunktion werden sowohl in my als auch in myRec widergespiegelt, da sie sich auf dasselbe zugrunde liegende Objekt beziehen.

Wenn jedoch Wir versuchen, die Referenz auf my innerhalb der Rechteckfunktion zu überschreiben. Dies hat keine Auswirkungen auf die Kopie der Referenz, die vom Aufrufer (myRec) gehalten wird. Dies liegt daran, dass Referenzen als Wert übergeben werden, was bedeutet, dass die Zuweisung eines neuen Objekts zu my innerhalb der Funktion nur die lokale Referenz ändert, nicht die Referenz, die vom Aufrufer gehalten wird.

Das obige ist der detaillierte Inhalt vonPass-by-Value vs. Pass-by-Reference in JavaScript: Wie wirken sie sich auf Funktionsargumente aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage