Reflect.isExtensible()
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
Статический метод Reflect.isExtensible() похож на Object.isExtensible(). Он определяет, является ли объект расширяемым (можно ли добавлять к нему новые свойства).
Попробуйте
const object1 = {};
console.log(Reflect.isExtensible(object1));
// Expected output: true
Reflect.preventExtensions(object1);
console.log(Reflect.isExtensible(object1));
// Expected output: false
const object2 = Object.seal({});
console.log(Reflect.isExtensible(object2));
// Expected output: false
Синтаксис
Reflect.isExtensible(target)
Параметры
-
target - Целевой объект, для которого проверяется расширяемость.
Возвращаемое значение
Boolean, указывающий, является ли целевой объект расширяемым.
Исключения
-
TypeError - Выбрасывается, если
targetне является объектом.
Описание
Reflect.isExtensible() предоставляет семантику отражения для проверки расширяемости объекта. Единственное отличие от Object.isExtensible() заключается в обработке не-объектных целей. Reflect.isExtensible() выбрасывает TypeError, если цель не является объектом, в то время как Object.isExtensible() всегда возвращает false для не-объектных целей.
Reflect.isExtensible() вызывает внутренний метод объекта [[IsExtensible]] объекта target.
Примеры
Использование Reflect.isExtensible()
См. также Object.isExtensible().
// New objects are extensible.
const empty = {};
Reflect.isExtensible(empty); // true
// … but that can be changed.
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false
// Sealed objects are by definition non-extensible.
const sealed = Object.seal({});
Reflect.isExtensible(sealed); // false
// Frozen objects are also by definition non-extensible.
const frozen = Object.freeze({});
Reflect.isExtensible(frozen); // false
Отличие от Object.isExtensible()
Если аргумент target для этого метода не является объектом (примитив), это вызовет TypeError. С Object.isExtensible() не-объектная target вернет false без каких-либо ошибок.
Reflect.isExtensible(1); // TypeError: 1 is not an object Object.isExtensible(1); // false
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
isExtensible |
49 |
12 |
42 |
36 |
10 |
49 |
42 |
36 |
10 |
5.0 |
49 |
10 |
1.0.0 |
1.0 |
6.0.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible