JavaScript метод Object.isExtensible()
Определение и применение
JavaScript метод isExtensible() возвращает логическое значение, которое определяет является ли объект
расширяемым (доступно добавление новых собственных свойств), или нет. Если объект является расширяемым, то
возвращаемое значение будет true, в обратном случае false.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
isExtensible | 6 | 12 | 4 | 12 | 5.1 | 18 | 4 | 12 | 5 | 1.0 | 4.4 | 5 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
Object.isExtensible( obj );
Спецификация
ECMAScript: Object.isExtensible()
Значения параметров
| Параметр | Описание |
|---|---|
obj |
Целевой объект, который необходимо проверить. Обязательное значение. |
Исключения
| Тип исключения | Описание |
|---|---|
TypeError |
Примитивы не вызывают исключение: Object.isFrozen() и Object.isSealed() возвращают
true, а Object.isExtensible() — false. Проверка прокси может выбросить
исключение.
|
Примеры, попробуйте сами
В примере «Проверка до и после запрета расширения» показан результат вызова метода.
Проверка до и после запрета расширения
Измените свойства исходного объекта и сравните результат до и после вызова метода.
index.html
<html lang="ru">
<head>
<meta charset="UTF-8" />
<title>Проверка до и после запрета расширения</title>
</head>
<body>
<p>Результат выполнения выводится в консоль.</p>
</body>
</html>
main.js
// инициализируем переменную, содержащую объект
let obj = {
a: 1,
b: 2,
c: 3,
}
// проверяем является ли объект расширяемым
console.log(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}
// проверяем является ли объект расширяемым
console.log(Object.isExtensible(obj)) // false
В этом примере мы инициализировали переменную, содержащую объект и с помощью метода isExtensible() мы
проверяем является ли объект расширяемым. Получив подтверждение о том, что объект является расширяемым мы добавляем в
него свойство d, и с помощью метода
preventExtensions()
делаем его нерасширяемым.
Далее мы изменяем свойство a объекта и удаляем свойство с, выводим содержимое объекта в консоль,
и пытаемся добавить свойство f в объект. Затем снова выводим в консоль содержимое объекта, как вы можете
заметить свойство f добавлено не было.
В заключении примера с помощью метода isExtensible() мы проверяем является ли наш объект расширяемым, в
результате чего мы получаем значение false, которое свидетельствует о том, что наш объект является
нерасширяемым.