Heim >Web-Frontend >js-Tutorial >Wie unterscheiden sich Grundwerte und Referenzwerte in JavaScript, wenn sie an eine Funktion übergeben werden?
Primitive Werte und Referenzwerte in JavaScript
In JavaScript können Variablen entweder primitive Werte oder Referenzwerte zugewiesen werden. Primitive Werte wie boolesche Werte, Zahlen und Zeichenfolgen werden direkt am Speicherort der Variablen gespeichert.
Wenn Sie einen Referenzwert wie ein Array oder Objekt erstellen, speichern Sie das Objekt oder Array nicht tatsächlich selbst in der Variablen. Stattdessen speichern Sie einen Verweis auf den Speicherort im Speicher, an dem das Objekt oder Array gespeichert ist. Das heißt, wenn Sie das Objekt oder Array ändern, werden die Änderungen in der Variablen widergespiegelt, auch wenn sich die Variable selbst nicht geändert hat.
Beispiel
Das Folgende JavaScript-Code erstellt einen Grundwert und einen Referenzwert:
var name = "John"; // Primitive value stored in the variable var shoppingCart = []; // Reference value stored in the variable
In diesem Beispiel enthält der Variablenname den Grundwert „John“. Die Variable „shoppingCart“ enthält einen Verweis auf das im Speicher gespeicherte Array-Objekt.
Übergabe von Werten nach Wert vs. nach Referenz
Wenn Sie einen primitiven Wert an eine Funktion übergeben, eine Kopie des Werts wird übergeben. Dies bedeutet, dass Änderungen am Wert innerhalb der Funktion keinen Einfluss auf den in der Variablen gespeicherten Wert haben.
Wenn Sie einen Referenzwert an eine Funktion übergeben, wird die Referenz selbst übergeben, keine Kopie. Dies bedeutet, dass sich alle Änderungen, die am Objekt oder Array innerhalb der Funktion vorgenommen werden, auch auf das in der Variable gespeicherte Objekt oder Array auswirken.
Beispiel
Der folgende JavaScript-Code demonstriert Übergabe von Werten nach Wert und nach Referenz:
// Pass by value var name = "John"; function changeName(name) { name = "Jane"; // Changes the local copy of the value } changeName(name); console.log(name); // Outputs "John" because the original value is not changed // Pass by reference var shoppingCart = []; function addProduct(shoppingCart) { shoppingCart.push("Apple"); // Changes the object stored in the reference } addProduct(shoppingCart); console.log(shoppingCart); // Outputs ["Apple"] because the original object is updated
Im ersten Beispiel wird der Funktion changeName der Grundwert „John“ übergeben. Wenn die Funktion den Wert in „Jane“ ändert, ist der im Variablennamen gespeicherte Originalwert nicht betroffen.
Im zweiten Beispiel wird der Funktion addProduct der Referenzwert shoppingCart übergeben. Wenn die Funktion das Produkt „Apple“ zum Array hinzufügt, wird auch das in der Variablen shoppingCart gespeicherte Originalobjekt aktualisiert.
Das obige ist der detaillierte Inhalt vonWie unterscheiden sich Grundwerte und Referenzwerte in JavaScript, wenn sie an eine Funktion übergeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!