Heim  >  Artikel  >  Web-Frontend  >  Wie übergebe ich den Wert (nicht die Referenz) einer JavaScript-Variablen an eine Funktion?

Wie übergebe ich den Wert (nicht die Referenz) einer JavaScript-Variablen an eine Funktion?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-25 08:00:03638Durchsuche

How to Pass the Value (Not the Reference) of a JavaScript Variable to a Function?

So übergeben Sie den Wert (nicht die Referenz) einer JS-Variablen an eine Funktion

In dynamischen Sprachen wie JavaScript sind Variablen standardmäßig als Referenz übergeben. Dies bedeutet, dass alle an der Variablen innerhalb der Funktion vorgenommenen Änderungen in der ursprünglichen Variablen außerhalb der Funktion widergespiegelt werden. In bestimmten Situationen ist dieses Verhalten unerwünscht und Sie müssen möglicherweise stattdessen den Wert einer Variablen an eine Funktion übergeben.

Für moderne Browser sollten Sie die Verwendung der Schlüsselwörter let oder const in Betracht ziehen, um blockbezogene Variablen zu definieren:

<code class="js">for (let i = 0; i < results.length; i++) {
  let marker = results[i];
  google.maps.event.addListener(marker, 'click', () => change_selection(i));
}</code>

Dieser Ansatz stellt sicher, dass jede Iteration der Schleife einen neuen Bereich für die i-Variable erstellt und so das Problem verhindert, dass jeder Listener am Ende der Schleife den Wert von results.length verwendet.

Wenn Sie mit älteren Browsern arbeiten, erstellen Sie einen separaten Bereich für jede Iteration der Schleife, indem Sie die Variable als Funktionsparameter übergeben:

<code class="js">for (var i = 0; i < results.length; i++) {
  (function (i) {
    marker = results[i];
    google.maps.event.addListener(marker, 'click', function() { 
      change_selection(i);
    }); 
  })(i);
}</code>

Indem Sie eine anonyme Funktion verwenden und diese mit der Variablen aufrufen Als erstes Argument übergeben Sie effektiv einen Wert und erstellen einen Abschluss. Dadurch wird sichergestellt, dass jeder Listener über eine eigene Kopie der i-Variablen verfügt, die auf ihren Wert zum Zeitpunkt der Erstellung des Listeners verweist.

Das obige ist der detaillierte Inhalt vonWie übergebe ich den Wert (nicht die Referenz) einer JavaScript-Variablen an eine Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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