JavaScript метод isExtensible()
JavaScript ObjectОпределение и применение
JavaScript метод isExtensible() возвращает логическое значение, которое определяет является ли объект расширяемым (доступно добавление новых собственных свойств), или нет. Если объект является расширяемым, то возвращаемое значение будет true, в обратном случае false.
Обратите внимание на то, что по умолчанию все объекты являются расширяемыми, чтобы сделать объект нерасширяемым вы можете воспользоваться методами freeze(), preventExtensions(), или seal().
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
isExtensible() | 6.0 | 4.0 | 12.0 | 5.1 | 9.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