Heim >Web-Frontend >js-Tutorial >Übergibt JavaScript Variablen als Referenz oder als Wert?

Übergibt JavaScript Variablen als Referenz oder als Wert?

Barbara Streisand
Barbara StreisandOriginal
2024-12-13 15:12:12707Durchsuche

Does JavaScript Pass Variables by Reference or by Value?

Variablen per Referenz in JavaScript übergeben

Wenn Sie mehrere Operationen an Variablen innerhalb einer Schleife ausführen, ist es wichtig zu verstehen, wie JavaScript mit der Variablenübergabe umgeht. Im Gegensatz zu vielen anderen Programmiersprachen unterstützt JavaScript die Übergabe als Referenz nicht. Das Referenzieren von Objekten ermöglicht jedoch die Änderung ihres Inhalts innerhalb von Funktionen.

function alterObject(obj) {
  obj.foo = "goodbye";
}

var myObj = { foo: "hello world" };

alterObject(myObj);

alert(myObj.foo); // "goodbye"

Es ist auch möglich, über Arrays zu iterieren, was die Änderung jeder Zelle ermöglicht.

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) {
  arr[i] = arr[i] + 1;
}

Das ist erwähnenswert dass echte Referenzübergabe die Möglichkeit beinhaltet, Werte im aufrufenden Kontext zu ändern, was JavaScript nicht unterstützt.

function swap(a, b) {
  var tmp = a;
  a = b;
  b = tmp;
}

var x = 1, y = 2;
swap(x, y);

alert("x is " + x + ", y is " + y); // "x is 1, y is 2"

Im Gegensatz zu C , was eine echte Referenzübergabe ermöglicht, unterstützt JavaScript nur die Übergabe von Referenzen auf Objekte. Die Änderung von Objektinhalten innerhalb von Funktionen ist möglich, Referenzen selbst können jedoch nicht geändert werden.

Das obige ist der detaillierte Inhalt vonÜbergibt JavaScript Variablen als Referenz oder als Wert?. 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