Die JavaScript Object.freeze () -Methode friert ein Objekt ein.
Ein eingefrorenes Objekt kann nicht mehr geändert werden. Das Einfrieren eines Objekts verhindert:
- Neue Eigenschaften werden dem Objekt nicht hinzugefügt.
- Vorhandene Eigenschaften, die aus dem Objekt entfernt werden sollen.
- Ändern der Aufzählbarkeit, Konfigurierbarkeit oder Beschreibbarkeit vorhandener Eigenschaften.
- Ändern der Werte der vorhandenen Objekteigenschaften und des Prototyps.
Die Syntax der freeze()
Methode lautet:
Object.freeze(obj)
Die freeze()
Methode ist eine statische Methode und wird unter Verwendung des Object
Klassennamens aufgerufen .
freeze () Parameter
Die freeze()
Methode umfasst:
- obj - Das Objekt zum Einfrieren.
Rückgabewert von freeze ()
- Das Objekt, das an die Funktion übergeben wurde.
Anmerkungen :
- Alle Versuche, Eigenschaftensätze von eingefrorenen Objekten hinzuzufügen oder daraus zu entfernen, schlagen entweder stillschweigend fehl oder werden ausgelöst
TypeError
(meistens im strengen Modus). - Mit versiegelten Objekten
Object.seal()
können die vorhandenen Eigenschaften geändert werden, währendObject.freeze()
die vorhandenen Eigenschaften unveränderlich werden.
Beispiel: Verwenden von freeze ()
let obj = ( prop: function () (), foo: "bar", ); let o = Object.freeze(obj); console.log(o == obj); // True -> Returns the same object console.log(Object.isFrozen(obj)); // true // changes will fail silently obj.foo = "bar1"; console.log(obj.foo); // bar // does not add silently obj.new_foo = "bar"; console.log(obj.new_foo); // undefined // Following will also throw error // Object.setPrototypeOf(obj, ( x: 20 ))
Ausgabe
true true bar undefiniert
Hinweis : Object.freeze(obj)
Gilt nur für die unmittelbaren Eigenschaften von obj
. Wenn der Wert dieser Eigenschaften Objekte selbst sind, werden diese Objekte nicht eingefroren und können das Ziel von Operationen zum Hinzufügen, Entfernen oder Neuzuweisen von Eigenschaften sein.
Empfohlene Lektüre: JavaScript-Objektsiegel ()