JavaScript Object.freeze ()

Il metodo JavaScript Object.freeze () congela un oggetto.

Un oggetto congelato non può più essere modificato. Il congelamento di un oggetto impedisce:

  • Nuove proprietà da aggiungere all'oggetto.
  • Proprietà esistenti da rimuovere dall'oggetto.
  • Modifica dell'enumerabilità, configurabilità o scrivibilità delle proprietà esistenti.
  • Modifica dei valori delle proprietà dell'oggetto esistenti e del prototipo.

La sintassi del freeze()metodo è:

 Object.freeze(obj)

Il freeze()metodo, essendo un metodo statico, viene chiamato utilizzando il Objectnome della classe.

parametri freeze ()

Il freeze()metodo comprende:

  • obj - L'oggetto da congelare.

Valore restituito da freeze ()

  • L'oggetto passato alla funzione.

Note :

  • Qualsiasi tentativo di aggiungere o rimuovere dal set di proprietà di oggetti congelati fallirà silenziosamente o verrà lanciato TypeError(principalmente in modalità rigorosa).
  • Gli oggetti con cui Object.seal()è stato sigillato possono modificare le proprietà esistenti mentre le proprietà esistenti non possono essere Object.freeze()modificate.

Esempio: utilizzo di freeze ()

 let obj = ( prop: function () (), foo: "bar", ); let o = Object.freeze(obj); console.log(o == obj); // True -> Returns the same object console.log(Object.isFrozen(obj)); // true // changes will fail silently obj.foo = "bar1"; console.log(obj.foo); // bar // does not add silently obj.new_foo = "bar"; console.log(obj.new_foo); // undefined // Following will also throw error // Object.setPrototypeOf(obj, ( x: 20 ))

Produzione

 vero vero bar undefined

Nota : Object.freeze(obj)si applica solo alle proprietà immediate di obj. Se il valore di tali proprietà sono oggetti stessi, tali oggetti non vengono congelati e possono essere l'obiettivo di operazioni di aggiunta, rimozione o riassegnazione di valore di proprietà.

Letture consigliate: JavaScript Object seal ()

Articoli interessanti...