--- title: Object.isSealed() slug: Web/JavaScript/Reference/Global_Objects/Object/isSealed tags: - ECMAScript 5 - JavaScript - Об'єкт - метод translation_of: Web/JavaScript/Reference/Global_Objects/Object/isSealed ---
{{JSRef}}

Метод Object.isSealed() визначає, чи є об'єкт запечатаним.

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

Синтаксис

Object.isSealed(obj)

Параметри

obj
Об'єкт, який треба перевірити.

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

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

Опис

Повертає true, якщо об'єкт запечатаний, інакше повертає false. Об'єкт вважається запечатаним, якщо він {{jsxref("Object.isExtensible", "нерозширюваний", "", 1)}} та якщо всі його властивості недоступні для налаштування і, відповідно, недоступні для видалення (але не обов'язково недоступні для запису).

Приклади

// За замовчуванням об'єкти не запечатані.
var empty = {};
Object.isSealed(empty); // === false

// Якщо зробити порожній об'єкт нерозширюваним,
// він стає порожньо запечатаним.
Object.preventExtensions(empty);
Object.isSealed(empty); // === true

// Те саме стосується непорожнього об'єкта,
// хіба що усі його властивості недоступні для налаштування.
var hasProp = { fee: 'Крибле крабле бум' };
Object.preventExtensions(hasProp);
Object.isSealed(hasProp); // === false

// Але зробимо їх усі недоступними для налаштування,
// і об'єкт стає запечатаним.
Object.defineProperty(hasProp, 'fee', {
  configurable: false
});
Object.isSealed(hasProp); // === true

// Звісно, найпростіший спосіб запечатати об'єкт -
// це Object.seal.
var sealed = {};
Object.seal(sealed);
Object.isSealed(sealed); // === true

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

// Запечатаний об'єкт може бути замороженим,
// але це не обов'язково.
Object.isFrozen(sealed); // === true
// (усі властивості також недоступні для запису)

var s2 = Object.seal({ p: 3 });
Object.isFrozen(s2); // === false
// ('p' досі доступна для запису)

var s3 = Object.seal({ get p() { return 0; } });
Object.isFrozen(s3); // === true
// (для аксесорів має значення тільки доступність для налаштування)

Примітки

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

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

Object.isSealed(1);
// true                          (код ES2015)

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

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

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

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

Див. також