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 Object
nome 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 essereObject.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 ()