Heim >Web-Frontend >js-Tutorial >Wie unterscheiden sich Grundwerte und Referenzwerte in JavaScript, wenn sie an eine Funktion übergeben werden?

Wie unterscheiden sich Grundwerte und Referenzwerte in JavaScript, wenn sie an eine Funktion übergeben werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-16 10:21:02506Durchsuche

How do primitive values and reference values differ in JavaScript when passed to a function?

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!

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