Przejdź do treści

JS / Object

freeze

Co zrobić, aby zamrozić obiekt w taki sposób, aby nie można go było już zmieniać?

(interpretuje: Internet Explorer 9, Firefox 4, Opera 12, Chrome 6)

Object.freeze(O)
Parametry:
Object O - obiekt
Wartość:
O - przekazany obiekt
Wyjątki:
TypeError - wartość O nie jest obiektem

Wywołanie tej funkcji na podanym obiekcie sprawia, że nie będzie można dla niego definiować więcej żadnych deskryptorów właściwości, dodawać żadnych nowych właściwości, usuwać istniejących właściwości ani zmieniać im wartości. Mówimy, że obiekt został zamrożony (ang. freeze), tzn. jego struktura i dane pozostaną niezmienne.

Przykład:

var obj = Object.defineProperty({p: 1}, "x", {configurable: true});
delete obj.p;
obj.p;                                                 // undefined
obj.test = 3;
 
Object.freeze(obj);
obj.test;                                              // 3
obj.test = 2;
obj.test;                                              // 3
delete obj.test;
obj.test;                                              // 3
obj.p = 1;
obj.p;                                                 // undefined
 
Object.defineProperty(obj, "x", {configurable: true}); // TypeError
Object.defineProperty(obj, "p", {});                   // TypeError
Object.freeze(true);                                   // TypeError
Object.freeze(1);                                      // TypeError
Object.freeze("test");                                 // TypeError
Object.freeze(null);                                   // TypeError

Czytaj dalej

Aby kontynuować kurs przejdź do poprzedniego lub następnego artykułu:

Komentarze

Zobacz więcej komentarzy

Facebook