Атрибут extensible
Атрибут extensible
объекта определяет, допускается ли добавлять в объект новые свойства.
В ECMAScript 5 все встроенные и определяемые пользователем объекты являются расширяемыми, если они не были преобразованы в нерасширяемые объекты, а расширяемость объектов среды выполнения по-прежнему определяется каждой конкретной реализацией. Стандарт ECMAScript 5 определяет функции для получения и изменения признака расширяемости объекта. Чтобы определить, допускается ли расширять объект, его следует передать методу Object.isExtensible()
.
Object.isExtensible()
Возможно ли добавить в объект новое свойство?
Возвращет true
, если в объект можно расширить новыми свойствами, и false
– если нет.
Если в объект можно добавлять новые свойства, он является расширяемым. Все объекты сразу после создания являются расширяемыми и остаются таковыми, пока не будут переданы функции Object.preventExtensions(), Object.seal() или Object.freeze()
. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.
Синтаксис:
Object.isExtensible(o)
Пример:
var o = {}; // Создать новый объект
Object.isExtensible(o) // => true: он является расширяемым
Object.preventExtensions(o); // Сделать нерасширяемым
Object.isExtensible(o) // => false: теперь он нерасширяемый