JavaScript метод isExtensible()

JavaScript Object

Определение и применение

JavaScript метод isExtensible() возвращает логическое значение, которое определяет является ли объект расширяемым (доступно добавление новых собственных свойств), или нет. Если объект является расширяемым, то возвращаемое значение будет true, в обратном случае false.


Обратите внимание на то, что по умолчанию все объекты являются расширяемыми, чтобы сделать объект нерасширяемым вы можете воспользоваться методами freeze(), preventExtensions(), или seal().


Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
isExtensible()6.04.012.05.19.0Да

JavaScript синтаксис:

Object.isExtensible( obj );

Версия JavaScript

ECMAScript 5.1 (реализовано в JavaScript 1.8.5)

Значения параметров

ПараметрОписание
objЦелевой объект, который необходимо проверить. Обязательное значение.

Исключения

Тип исключенияОписание
TypeErrorВозникает в том случае, если значение параметра, определяющее целевой объект не является объектом. Начиная с версии ECMAScript 6 параметр, который не является объектом будет сначала приведён к объекту.

Пример использования

// инициализируем переменную, содержащую объект
let obj = {
    a: 1,
    b: 2,
    c: 3
};
// проверяем является ли объект расширяемым
Object.isExtensible( obj ); // true

obj.d = 4;   // добавляем свойство

// делаем объект нерасширяемым
Object.preventExtensions( obj );

obj.a = 100;    // изменяем свойство
delete obj.c;   // удаляем свойство

console.log( obj ); // {a: 100, b: 2, d: 4}

// пытаемся добавить свойство
obj.f = 5; 

console.log( obj ); // {a: 100, b: 2, d: 4}

// проверяем является ли объект расширяемым
Object.isExtensible( obj ); // false

В этом примере мы инициализировали переменную, содержащую объект и с помощью метода isExtensible() мы проверяем является ли объект расширяемым. Получив подтверждение о том, что объект является расширяемым мы добавляем в него свойство d, и с помощью метода preventExtensions() делаем его нерасширяемым.

Далее мы изменяем свойство a объекта и удаляем свойство с, выводим содержимое объекта в консоль, и пытаемся добавить свойство f в объект. Затем снова выводим в консоль содержимое объекта, как вы можете заметить свойство f добавлено не было.

В заключении примера с помощью метода isExtensible() мы проверяем является ли наш объект расширяемым, в результате чего мы получаем значение falsе, которое свидетельствует о том, что наш объект является нерасширяемым.

JavaScript Object