Object.isExtensible()
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Статический метод Object.isExtensible() определяет, является ли объект расширяемым (т. е. можно ли к нему добавлять новые свойства).
Попробуйте
const object = {};
console.log(Object.isExtensible(object));
// Expected output: true
Object.preventExtensions(object);
console.log(Object.isExtensible(object));
// Expected output: false
Синтаксис
Object.isExtensible(obj)
Параметры
-
obj - Объект, который нужно проверить.
Возвращаемое значение
Boolean, указывающий, является ли данный объект расширяемым.
Описание
Объекты по умолчанию являются расширяемыми: к ним можно добавлять новые свойства, а их [[Prototype]] можно переназначать. Объект можно пометить как нерасширяемый с помощью одного из методов: Object.preventExtensions(), Object.seal(), Object.freeze() или Reflect.preventExtensions().
Примеры
Использование Object.isExtensible
// New objects are extensible.
const empty = {};
Object.isExtensible(empty); // true
// They can be made un-extensible
Object.preventExtensions(empty);
Object.isExtensible(empty); // false
// Sealed objects are by definition non-extensible.
const sealed = Object.seal({});
Object.isExtensible(sealed); // false
// Frozen objects are also by definition non-extensible.
const frozen = Object.freeze({});
Object.isExtensible(frozen); // false
Аргумент не является объектом
В ES5, если аргумент этого метода не является объектом (примитив), это вызовет TypeError. В ES2015, если передан аргумент не являющийся объектом, метод вернет false без каких-либо ошибок, поскольку примитивы по определению неизменяемы.
Object.isExtensible(1); // TypeError: 1 is not an object (ES5 code) Object.isExtensible(1); // false (ES2015 code)
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
6 |
12 |
4 |
12 |
5.1 |
18 |
4 |
12 |
5 |
1.0 |
4.4 |
5 |
1.0.0 |
1.0 |
0.10.0 |
См. также
Object.preventExtensions()Object.seal()Object.isSealed()Object.freeze()Object.isFrozen()Reflect.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/Object/isExtensible