Manipulacja obiektami w JavaScript - Object - JS
Opieczętowanie obiektu w JavaScript - seal
Co zrobić, aby opieczętować obiekt w taki sposób, aby jego struktura pozostała niezmienna w programie?
(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 Object.seal
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