Beispiel für die Verwendung eines manipulationssicheren JavaScript-Objekts

Beispiel für die Verwendung eines manipulationssicheren JavaScript-Objekts

Manipulationssicheres Javascript-Objekt

Dieses Ding wird selten verwendet und ich persönlich finde, dass es nicht sehr nützlich ist. Es kann jedoch als Werkzeug zum Angeben verwendet werden, haha, fangen wir an. .

1. Nicht erweiterbare Objekte

Objekte sind standardmäßig erweiterbar, das heißt, dass ihnen jederzeit Eigenschaften und Methoden hinzugefügt werden können. Jetzt können Sie dieses Verhalten mit der Methode Object.preventExtensions(object) ändern, sodass Sie dem Objekt keine Eigenschaften und Methoden mehr hinzufügen können. Zum Beispiel:

var person={name : 'jack'};
Objekt.preventExtensions(Person);
Person.Alter=13;
console.log(Person.Alter);///aufheben

Obwohl Sie dem Objekt keine neuen Mitglieder hinzufügen können, sind die vorhandenen Mitglieder hiervon überhaupt nicht betroffen und Sie können Ihre vorhandenen Mitglieder weiterhin ändern und löschen. Darüber hinaus können Sie mit der Methode isExtensible() bestimmen, ob das Objekt erweiterbar ist. Zum Beispiel:

var person={name : 'jack'};
Alarm (Objekt.isExtensible (Person)); //wahr

Objekt.preventExtensions(Person);
Alarm (Object.istExtensible (Person)); //falsch

2. Versiegelte Objekte

Die zweite von ECMAScript 5 für Objekte definierte Schutzebene sind versiegelte Objekte. Verwenden Sie die Methode Object.seal(object), um ein Objekt in ein versiegeltes Objekt zu ändern. Versiegelte Objekte sind nicht erweiterbar und das Attribut [[configurable]] vorhandener Mitglieder wird auf „false“ gesetzt. Dies bedeutet, dass Eigenschaften und Methoden nicht gelöscht werden können, da Sie Object.defineProperty() nicht verwenden können, um Daten zu ändern und auf deren Eigenschaften zuzugreifen, und umgekehrt. Der Attributwert kann jedoch geändert werden.

var person = {name:'tom'};
Objekt.Siegel(Person);
Person.Alter=12;
console.log(Person.Alter);//aufheben

person.name löschen;
konsole.log(person.name);//tom

person.name="jack";
Alarm (Person.Name);//Jack

Verwenden Sie die Methode Object.isSealed(), um zu bestimmen, ob ein Objekt versiegelt ist. Da versiegelte Objekte nicht erweiterbar sind, gibt die Verwendung von Object.istExtensible() zum Erkennen versiegelter Objekte ebenfalls false zurück (d. h. nicht erweiterbar).

var person = {name:'tom'};
alert(Object.isExtensible(person)); ///true, erweiterbar alert(Object.isSealed(person)); ////false, unverschlüsselt Object.seal(person);
alert(Object.isExtensible(person)); ///false, nicht erweiterbar alert(Object.isSealed(person)); ////true, bereits verschlüsselt

3. Gefrorene Objekte

Die strengste Stufe der Manipulationsprävention sind eingefrorene Objekte. Eingefrorene Objekte sind weder erweiterbar noch versiegelt, und das Attribut [[Writable]] der Dateneigenschaften des Objekts wird auf „false“ gesetzt. Wenn eine Set-Funktion definiert ist, ist die Accessor-Eigenschaft immer noch beschreibbar. Jetzt können Sie die Methode Object.freeze(object) verwenden, um das Objekt in ein eingefrorenes Objekt zu ändern.

var person={name : 'tony'};
Objekt.einfrieren(Person);
Person.Alter=12;
Alarm (Person.Alter);//aufheben

person.name löschen;
Alarm (Person.Name);//Tony

Person.Name = "Jack";
Alarm (Person.Name);//Tony

Verwenden Sie die Methode Object.isFrozen(), um festzustellen, ob ein Objekt eingefroren ist. Da eingefrorene Objekte sowohl nicht erweiterbare als auch versiegelte Objekte sind, verwenden Sie isExtensible()
und Object.istExtensible() geben beim Erkennen eingefrorener Objekte jeweils „false“ und „true“ zurück.

var person = {name:'tom'};
alert(Object.isExtensible(person));///true, erweiterbar alert(Object.isSealed(person));////false, unverschlüsselt alert(Object.isFrozen(person));////false, unverschlüsselt Object.seal(person);
alert(Object.isExtensible(person)); ///false, nicht erweiterbar alert(Object.isSealed(person)); ////true, bereits verschlüsselt alert(Object.isFrozen(person)); ////true, bereits eingefroren

Oben finden Sie den detaillierten Inhalt des Anwendungsbeispiels für manipulationssichere JavaScript-Objekte. Weitere Informationen zu manipulationssicheren JavaScript-Objekten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Analyse der Methode von JavaScript zum Erstellen manipulationssicherer Objekte
  • Detaillierte Erläuterung der Javascript-Manipulationsschutzobjektinstanz

<<:  Erläuterung verschiedener Möglichkeiten zum Ausführen von Tomcat unter Linux

>>:  Tutorial zur Installation und Konfiguration der entpackten Version von MySql unter Windows 10

Artikel empfehlen

Beispiele für die Verwendung von HTML-Listen-Tags dl, ul, ol

Code kopieren Der Code lautet wie folgt: <!-- ...

Beispiele für vertikale Raster und progressiven Zeilenabstand

Neue Fragen Kommen und gehen Sie in Eile. Seit de...

Implementierung und Optimierung von MySql-Unterabfragen IN

Inhaltsverzeichnis Warum ist IN langsam? Was ist ...

Nginx implementiert ein Codebeispiel für die https-Websitekonfiguration

https-Basisport 443. Er wird für etwas verwendet,...

In der HTML-Tabelle wird nur der äußere Rand der Tabelle angezeigt

Ich möchte eine Frage stellen. Ich habe in Dreamw...

Tutorial zur Installation der PyTorch-Entwicklungsumgebung unter Windows

Anaconda-Installation Anaconda ist ein Softwarepa...

Windows Server 2019 installieren (grafisches Tutorial)

Windows Server 2019 ist das neueste Server-Betrie...

Eine kurze Erklärung zum sinnvollen Einsatz von Tabellen und Divs im Seitendesign

Zu Beginn dieses Artikels möchte ich die Fehler in...

Eine SQL-Anweisung schließt die MySQL-Deduplizierung ab und behält eine

Als ich vor einigen Tagen an einer Anforderung ar...

Zusammenfassung des CSS-Zählers und des Inhalts

Die Inhaltseigenschaft wurde bereits in CSS 2.1 e...

MYSQL METADATA LOCK (MDL LOCK) MDL-Sperrproblemanalyse

1. Einleitung MDL-Sperren in MySQL haben schon im...