Przejdź do treści

Object

seal

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

Object.seal(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 ani usuwać istniejących. Natomiast będzie można normalnie zmieniać wartości właściwości, które obiekt posiadał już wcześniej. Mówimy, że obiekt został opieczętowany (ang. seal), tzn. jego struktura pozostanie niezmienna.

Przykład:

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

Komentarze

Zobacz więcej komentarzy