Metoda JavaScript Object.freeze () blochează un obiect.
Un obiect înghețat nu mai poate fi schimbat. Congelarea unui obiect împiedică:
- Proprietăți noi de la adăugarea la obiect.
- Proprietățile existente care trebuie eliminate din obiect.
- Modificarea enumerabilității, configurabilității sau scrierii proprietăților existente.
- Modificarea valorilor proprietăților și prototipului obiectului existent.
Sintaxa freeze()
metodei este:
Object.freeze(obj)
freeze()
Metoda, fiind o metodă statică, se numește folosind Object
numele clasei.
freeze () Parametri
freeze()
Metoda ia în:
- obj - Obiectul de înghețat.
Returnează valoarea din freeze ()
- Obiectul care a fost transmis funcției.
Note :
- Orice încercare de a adăuga sau a elimina din setul de proprietăți al obiectelor înghețate va eșua fie în tăcere, fie aruncată
TypeError
(mai ales atunci când este în modul strict). - Obiectele sigilate cu
Object.seal()
pot avea proprietățile existente modificate în timp ceObject.freeze()
fac proprietățile existente imuabile.
Exemplu: Folosirea 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 ))
Ieșire
true true bar nedefinit
Notă : Object.freeze(obj)
se aplică numai proprietăților imediate ale obj
. Dacă valoarea acelor proprietăți sunt obiecte în sine, acele obiecte nu sunt înghețate și pot fi ținta operațiunilor de adăugare, eliminare sau reatribuire a proprietății.
Lectură recomandată: sigiliul obiectului JavaScript ()