Die verblüffende Konstante: Warum Sie konstante Objekte in JavaScript (irgendwie) ändern können
Trotz der klaren Definition von Konstanten in ECMAScript 6, Wenn sie als unveränderliche Werte deklariert sind, die nicht neu zugewiesen oder neu deklariert werden können, scheinen viele Browser, die jetzt das Schlüsselwort const unterstützen, dies mit Sicherheit zu ermöglichen Änderungen an konstanten Objekten.
Dieser wahrgenommene Widerspruch ergibt sich aus den technischen Details des konstanten Verhaltens in JavaScript. Während Sie eine Konstante nicht direkt neu zuweisen oder neu deklarieren können, können Sie Änderungen an den Eigenschaften eines konstanten Objekts vornehmen.
Der Grund dafür ist, dass Sie Elemente zu einem Array hinzufügen oder daraus entfernen oder Eigenschaften hinzufügen oder ändern Wenn Sie ein Objekt verwenden, ändern Sie nicht wirklich die Konstante selbst. Sie ändern vielmehr den internen Zustand des Objekts, auf das die Konstante zeigt.
Zum Beispiel im folgenden Code:
const yyy = []; yyy.push(6); yyy.push(1);
yyy bleibt ein Verweis auf dasselbe Array, aber Der Inhalt dieses Arrays ändert sich. Ähnlich verhält es sich im folgenden Code:
const x = {}; x.foo = 'bar';
x verweist weiterhin auf dasselbe Objekt, aber diesem Objekt wird eine neue Eigenschaft, foo, hinzugefügt.
Daher ist es möglich Ändern Sie den Status konstanter Objekte, aber Sie können die Konstante selbst nicht neu zuweisen oder neu deklarieren.
Das obige ist der detaillierte Inhalt vonKönnen Sie konstante Objekte in JavaScript ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!