Heim > Web-Frontend > js-Tutorial > Werden JavaScript-Parameter als Wert oder als Referenz übergeben?

Werden JavaScript-Parameter als Wert oder als Referenz übergeben?

Barbara Streisand
Freigeben: 2024-12-16 10:30:13
Original
328 Leute haben es durchsucht

Is JavaScript Parameter Passing By Value or By Reference?

JavaScript-Parameterübergabemechanismus: Nach Wert oder nach Referenz?

JavaScript wirft wie viele Programmiersprachen häufig Fragen zum Verhalten seiner Parameter auf Parameterübergabemechanismen. In diesem Fall ließ eine bestimmte Instanz aus einem beliebten JavaScript-Nachschlagewerk die Leser über die Natur der Parameterübergabe in der Sprache nachdenken.

Die Frage:

Die Verwirrung entsteht aus Ein Beispiel, bei dem ein Parameter namens my innerhalb einer Funktion undefiniert zu sein scheint, später aber neu definiert wird. Da in der Parameterliste der Funktion kein offensichtlicher Verweis vorhanden ist, fragen sich die Leser, ob JavaScript Parameter als Verweis oder als Wert übergibt. Darüber hinaus erschwert die Tatsache, dass von der inneren Funktion keine Funktion zurückgegeben wird, das Verständnis des möglichen Abschlussverhaltens zusätzlich.

Die Antwort:

Um das Parameterübergabeverhalten von JavaScript richtig zu verstehen , ist es entscheidend, zwischen primitiven Werten und Objekten zu unterscheiden.

Primitive vs Objekte:

  • Primitive: Zahlen, Zeichenfolgen und boolesche Werte verhalten sich als Parameter zur Übergabe von Werten. Eine Kopie ihres Werts wird an die Funktion übergeben, und alle Änderungen innerhalb der Funktion haben keinen Einfluss auf den ursprünglichen Wert.
  • Objekte: Arrays und Objekte werden als Referenz übergeben. Dies bedeutet jedoch nicht, dass die Referenz selbst als Wert übergeben wird. Stattdessen wird eine Kopie der Referenz an die Funktion übergeben, sodass sich Änderungen innerhalb der Funktion auf das ursprüngliche Objekt auswirken können.

Im bereitgestellten Beispiel ist der Parameter „my“ eine Referenz auf ein definiertes Objekt später in der Funktion. Durch die Übergabe dieser Referenz aktualisieren alle innerhalb der Funktion vorgenommenen Änderungen (z. B. das Hinzufügen der Eigenschaften l und w) das ursprüngliche Objekt. Der Versuch, die my-Referenz selbst innerhalb der Funktion neu zuzuweisen (wie im Ersetzungsbeispiel zu sehen), hat jedoch keine Auswirkungen auf die Referenz des Aufrufers.

Abschluss:

Das Beispiel tut dies zeigt kein Abschlussverhalten, da keine Funktionen von anderen verschachtelten Funktionen zurückgegeben werden. Der Abschluss würde nur erfolgen, wenn eine in einer anderen Funktion definierte Funktion zurückgegeben würde, was es ihr ermöglicht, auf Variablen aus dem umschließenden Bereich zuzugreifen, selbst nachdem die umschließende Funktion zurückgegeben wurde.

Das obige ist der detaillierte Inhalt vonWerden JavaScript-Parameter als Wert oder als Referenz übergeben?. 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