Unveränderlichkeit von Objekten bedeutet, dass wir nicht möchten, dass sich die Objekte nach ihrer Erstellung in irgendeiner Weise ändern (wodurch sie schreibgeschützt werden).
Angenommen, wir müssen ein Autoobjekt definieren und seine Eigenschaften im gesamten Projekt verwenden, um Vorgänge auszuführen. Wir können nicht zulassen, dass Daten fehlerhaft geändert werden.
const myTesla = { maxSpeed: 155, batteryLife: 300, weight: 2300 };
Object.preventExtensions() Erweiterungen verhindern
Diese Methode verhindert das Hinzufügen neuer Eigenschaften zu vorhandenen Objekten. PreventExtensions() ist ein irreversibler Vorgang, wir können niemals zusätzliche Eigenschaften hinzufügen zum Objekt.
Object.isExtensible(myTesla); // true Object.preventExtensions(myTesla); Object.isExtensible(myTesla); // false myTesla.color = 'blue'; console.log(myTesla.color) // undefined
Object.seal() versiegelt
Es kann das Hinzufügen oder Entfernen von Attributen verhindern, seal() kann auch die Änderung von Attributdeskriptoren verhindern.
Object.isSealed(myTesla); // false Object.seal(myTesla); Object.isSealed(myTesla); // true myTesla.color = 'blue'; console.log(myTesla.color); // undefined delete myTesla.batteryLife; // false console.log(myTesla.batteryLife); // 300 Object.defineProperty(myTesla, 'batteryLife'); // TypeError: Cannot redefine property: batteryLife
Object.freeze() friert ein
Es hat den gleichen Effekt wie Object.seal(), macht die Eigenschaft jedoch nicht beschreibbar.
Object.isFrozen(myTesla); // false Object.freeze(myTesla); Object.isFrozen(myTesla); // true myTesla.color = 'blue'; console.log(myTesla.color); // undefined delete myTesla.batteryLife; console.log(myTesla.batteryLife); // 300 Object.defineProperty(myTesla, 'batteryLife'); // TypeError: Cannot redefine property: batteryLife myTesla.batteryLife = 400; console.log(myTesla.batteryLife); // 300
Hinweis: Wenn Sie möchten, dass beim Versuch, ein unveränderliches Objekt zu ändern, ein Fehler ausgegeben wird, verwenden Sie den strikten Modus.
Empfohlenes Tutorial: js-Einführungs-Tutorial
Das obige ist der detaillierte Inhalt vonSo erstellen Sie unveränderliche Objekte in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!