Trotz der Bezugnahme auf ES6-Spezifikationen, die die Unveränderlichkeit von Konstanten betonen, ermöglicht JavaScript scheinbar widersprüchliche Aktionen an konstanten Objekten. Wenn einem konstanten Objekt ein anderer Wert zugewiesen wird, bleibt dieser unverändert, das Hinzufügen oder Entfernen von Elementen innerhalb des Objekts ist jedoch scheinbar möglich.
Laut der MDN-Dokumentation kann „Konstante“ nicht Änderung durch Neuzuweisung“ und „Konstante kann nicht erneut deklariert werden“. Entscheidend ist, dass dies bedeutet, dass der Verweis auf das Objekt konstant ist und nicht das Objekt selbst. Sie können der konstanten Variablen kein neues Objekt zuweisen, aber Sie können den Inhalt des Objekts ändern.
Bedenken Sie den folgenden Codeausschnitt:
const myArray = []; myArray.push(1); console.log(myArray); // Output: [1]
In diesem Fall bleibt der Verweis auf das Array „myArray“ unverändert, da es immer noch auf dasselbe Array-Objekt verweist. Allerdings fügt die push()-Operation dem Array ein Element hinzu, ändert dessen Inhalt, verletzt aber nicht die konstante Semantik.
Ebenso können Sie Eigenschaften hinzufügen ein konstantes Objekt, ohne die Referenz zu ändern:
const myObject = {}; myObject.foo = 'bar'; console.log(myObject); // Output: {foo: "bar"}
Es ist wichtig Man unterscheidet zwischen Neuzuweisung und Änderung. Während bei einer Neuzuweisung eine neue Referenz erstellt wird, wird bei der Änderung dieselbe Objektreferenz bearbeitet. Bei konstanten Objekten ist eine Neuzuweisung verboten, um die Unveränderlichkeit sicherzustellen, während eine Änderung des Inhalts des Objekts weiterhin zulässig ist.
Das obige ist der detaillierte Inhalt vonWie können JavaScript-Konstanten geändert werden, wenn sie unveränderlich sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!