In JavaScript wird die erweiterbare Eigenschaft des Objekts verwendet, um anzuzeigen, ob neue Eigenschaften dynamisch im Objekt hinzugefügt werden dürfen. Im ECMascript 3 -Standard sind alle Objekte erweiterbar. Im Standard -ECMAScript 5 -Standard sind alle Objekte standardmäßig nach wie vor erweiterbar, diese Eigenschaft kann jedoch durch Einstellung geändert werden.
Um zu überprüfen, ob ein Objekt erweiterbar ist, können Sie das Objekt verwenden.
Die Codekopie lautet wie folgt:
var o = {x: 1};
console.log (Object.isextSible (o)); // true
Um ein nicht erweiterbares Objekt zu erstellen, können Sie das Objekt verwenden.
Die Codekopie lautet wie folgt:
Object.Preventextensions (o)
console.log (Object.isextesible (o)); // false
Es ist erwähnenswert, dass es keine Möglichkeit gibt, es erneut zu erweitern, da ein Objekt keine inverse Operation von Object.-Preventextesions () vorhanden ist, sobald ein Objekt auf nicht erweiterbar ist.
Der Umfang des Objekts. Wenn ein Objekt auf nicht erwiderte Einsätze eingestellt ist, können Eigenschaften in seinem Prototypobjekt weiterhin dynamisch hinzugefügt werden, und diese dynamisch hinzugefügten Eigenschaften können weiterhin vom Objekt vererbt werden.
Object.Seal () und Object.Freeze ())
Object.Preventextensions () verhindert, dass neue Eigenschaften in Objekten dynamisch hinzugefügt werden. Zusätzlich zu diesem Vorgang gibt es in JavaScript zwei strenge Operationen, um Objekte zu schützen: Object.seal () und Object.Freeze ().
Die Funktion von Object.Seal () besteht darin, die konfigurierbare Eigenschaft aller Objekte auf der Grundlage von Object.Preventextensions () auf False zu setzen. Wie das Object.Preventextensions () Operation () hat Object.Seal () keine Anti-Operation, sodass das Objekt nach dem Versiegeln nicht wiederhergestellt werden kann. In JavaScript können Sie Object.isaled () verwenden, um zu fragen, ob ein Objekt versiegelt wurde.
Die Funktion von Object.Freeze () besteht darin, die Eigenschaft aller Objekte basierend auf Object.Seal () als schreibgeschützt zu setzen. Wie das Object.Seal () und Object.Preventextensions () Operationen, Object.Freeze () hat keine Anti-Operation, sodass das Objekt nach dem Gefrieren nicht wiederhergestellt werden kann. In JavaScript können Sie Object.isfrozen () verwenden, um zu fragen, ob ein Objekt gefroren wurde.
Die Codekopie lautet wie folgt:
console.log (Object.isaled (o)); // false
Objekt.Seal (o);
console.log (Object.isaled (o)); // true
console.log (Object.isfordrozen (o)); // false
Object.Freeze (o);
console.log (Object.isfordrozen (o)); // true
Ob es sich um Objekt.preventextensions (), Object.Seal () und Object.Freeze () handelt, sein Aktionsumfang ist das Objekt selbst, und das Prototyp -Objekt des Objekts wird nicht beeinflusst.