Metoda JavaScript Object.freeze () zamraża obiekt.
Nie można już zmienić zamrożonego obiektu. Zamrożenie obiektu zapobiega:
- Dodano nowe właściwości do obiektu.
- Istniejące właściwości do usunięcia z obiektu.
- Zmiana wyliczalności, konfigurowalności lub zapisywalności istniejących właściwości.
- Zmiana wartości istniejących właściwości obiektu i prototypu.
Składnia freeze()
metody to:
Object.freeze(obj)
freeze()
Metoda jest metodą statyczną, nazywa się używając Object
nazwy klasy.
freeze () Parametry
freeze()
Sposób odbywa się:
- obj - obiekt do zamrożenia.
Wartość zwracana z zamrożenia ()
- Obiekt, który został przekazany do funkcji.
Uwagi :
- Wszelkie próby dodania lub usunięcia zestawu właściwości zamrożonych obiektów zakończą się niepowodzeniem po cichu lub odrzuceniem
TypeError
(głównie w trybie ścisłym). - Obiekty zapieczętowane za pomocą
Object.seal()
mogą mieć zmienione istniejące właściwości, podczasObject.freeze()
gdy istniejące właściwości stają się niezmienne.
Przykład: użycie 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 ))
Wynik
true true bar undefined
Uwaga : Object.freeze(obj)
dotyczy tylko bezpośrednich właściwości obj
. Jeśli wartością tych właściwości są same obiekty, obiekty te nie są zamrożone i mogą być celem operacji dodawania, usuwania lub zmiany przypisania właściwości.
Zalecana literatura: JavaScript Object seal ()