--- title: Object.isExtensible() slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible tags: - ECMAScript5 - JavaScript - Object - метод translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible ---
{{JSRef}}

Метод Object.isExtensible() визначає, чи є об'єкт розширюваним (чи може він бути доповнений новими властивостями).

{{EmbedInteractiveExample("pages/js/object-isextensible.html")}}

Синтаксис

Object.isExtensible(obj)

Параметри

obj
Об'єкт, який необхідно перевірити.

Значення, що повертається

{{jsxref("Boolean","Булеве значення")}}, що вказує, чи є об'єкт розширюваним.

Опис

За замовчуванням об'єкти є розширюваними: нові властивості можуть додаватися до них, і (у рушіях, що підтримують {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}}) їхня властивість __proto__ може бути змінена. Об'єкт можна зробити нерозширюваним за допомогою {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}} або {{jsxref("Object.freeze()")}}.

Приклади

// Нові об'єкти є розширюваними.
var empty = {};
Object.isExtensible(empty); // === true

// ...але це можна змінити.
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false

// Запечатані об'єкти є за визначенням нерозширюваними.
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false

// Заморожені об'єкти також за визначенням є нерозширюваними.
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false

Примітки

У ES5, якщо аргументом даного методу виступає не об'єкт (примітивне значення), це спричинить помилку {{jsxref("TypeError")}}. У ES2015 ж, якщо аргументом методу буде не об'єкт, він буде сприйнятий як звичайний нерозширюваний об'єкт, тобто, вихідним значенням буде false.

Object.isExtensible(1);
// TypeError: 1 is not an object (код ES5)

Object.isExtensible(1);
// false                         (код ES2015)

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

Специфікація Статус Коментар
{{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}} {{Spec2('ES5.1')}} Початкове визначення. Реалізоване у JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}} {{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.isextensible', 'Object.isExtensible')}} {{Spec2('ESDraft')}}

Сумісність з веб-переглядачами

{{Compat("javascript.builtins.Object.isExtensible")}}

Див. також