Heim > Web-Frontend > js-Tutorial > Hauptteil

So erstellen Sie unveränderliche Objekte in js

王林
Freigeben: 2020-05-19 09:16:03
nach vorne
2722 Leute haben es durchsucht

So erstellen Sie unveränderliche Objekte in js

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
};
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!