Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-reflect.isextensible

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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

См. также

  • Polyfill of Reflect.isExtensible in core-js
  • Reflect
  • Object.isExtensible()
  • handler.isExtensible()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API