--- title: Object.isExtensible() slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible tags: - ECMAScript5 - JavaScript - Object - метод translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible ---
Метод Object.isExtensible() визначає, чи є об'єкт розширюваним (чи може він бути доповнений новими властивостями).
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")}}