Object.seal()

Object.seal() - запечатує об'єкт, запобігаючи додавання нових властивостей об'єкта і роблячи всі існуючі властивості не налаштованим. Значення представлених властивостей все ще можуть змінюватися, оскільки вони залишаються записуваними.

Синтакс:

Object.seal( obj )

Параметри:

obj - об'єкт який необхідно запечатати.

Опис:

За замовчуванням, об'єкти є розширюваними (до них можуть додаватися нові властивості). Запечатування об'єкта запобігає додавання до нього нових властивостей і робить всі існуючі властивості не налаштованими. Воно робить всі властивості об'єкта фіксованими і незмінними. Позначка всіх властивостей об'єкта що не настроюються також запобігає їх перетворення з властивостей даних в властивості доступу і навпаки, але не запобігає зміні значення властивостей даних. Спроби видалення або додавання властивостей до запечатаному об'єкту, або перетворення властивостей даних в властивості доступу і навпаки, будуть терпіти невдачу, або мовчки, або з викиданням виключення TypeError. Ланцюжок прототипів не зачіпається. Однак, властивість __proto__  також запечативатся.

Для перевірки чи запечатаний об'єкт використовують метод Object.isSealed.

Приклад:

var b={a:999}; Object.seal(b); b.a=4; b.newA=3; alert(b.a+" "+b.newA);