Konstante Objekte in JavaScript: Unveränderliche Eigenschaften verstehen
Trotz des Schlüsselworts „constant“ in ES6 können Sie scheinbar konstante Objekte in JavaScript ändern. Dies kann rätselhaft sein, insbesondere angesichts des Anspruchs der Spezifikation auf Unveränderlichkeit. Also, was ist los?
Erstens verbietet das Schlüsselwort „constant“, wie in der MDN-Dokumentation klargestellt wird, eine Neuzuweisung und Neudeklaration der Konstante selbst. Wenn Sie jedoch ein Objekt oder Array ändern, weisen Sie es nicht neu zu oder deklarieren es neu. Stattdessen manipulieren Sie einfach die Eigenschaften des Objekts oder die Elemente des Arrays.
Betrachten Sie die Beispiele:
const x = {}; x.foo = 'bar'; // Adds a property to an existing object
const y = []; y.push('foo'); // Appends an element to an existing array
In beiden Fällen sind das konstante Objekt (x) und das Array ( y) bleiben die gleichen Referenzen. Sie ändern nicht das Objekt selbst, sondern fügen stattdessen seine Elemente hinzu oder ändern sie. Dies ist zulässig, da es die Unveränderlichkeit der konstanten Referenz nicht verletzt.
Eine Neuzuweisung oder Neudeklaration wird jedoch weiterhin verhindert:
const x = {}; x = {foo: 'bar'}; // Error: Reassigning a constant
const y = ['foo']; const y = ['bar']; // Error: Re-declaring a constant
Daher, solange Sie können Wenn Sie die Eigenschaften eines konstanten Objekts oder der Elemente eines konstanten Arrays ändern, können Sie die Referenz selbst nicht ersetzen oder neu definieren.
Das obige ist der detaillierte Inhalt vonWarum kann ich ein konstantes Objekt in JavaScript ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!