Heim > Web-Frontend > js-Tutorial > So erstellen Sie unveränderliche Objekte in js

So erstellen Sie unveränderliche Objekte in js

王林
Freigeben: 2020-05-19 09:16:03
nach vorne
2878 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.

1

2

3

4

5

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.

1

2

3

4

5

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.

1

2

3

4

5

6

7

8

9

10

11

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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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:
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
Aktuelle Ausgaben
Wo steht js?
Aus 1970-01-01 08:00:00
0
0
0
js-Dateicode nicht gefunden
Aus 1970-01-01 08:00:00
0
0
0
js addClass funktioniert nicht
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage