aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/object/issealed/index.html
blob: 5bb61b22c65a40443277d4dc1273912f4d3df918 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
title: Object.isSealed()
slug: Web/JavaScript/Reference/Global_Objects/Object/isSealed
tags:
  - ECMAScript 5
  - JavaScript
  - Об'єкт
  - метод
translation_of: Web/JavaScript/Reference/Global_Objects/Object/isSealed
---
<div>{{JSRef}}</div>

<p>Метод <code><strong>Object.isSealed()</strong></code> визначає, чи є об'єкт запечатаним.</p>

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



<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox"><code>Object.isSealed(<var>obj</var>)</code></pre>

<h3 id="Параметри">Параметри</h3>

<dl>
 <dt><code>obj</code></dt>
 <dd>Об'єкт, який треба перевірити.</dd>
</dl>

<h3 id="Значення_що_повертається">Значення, що повертається</h3>

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

<h2 id="Опис">Опис</h2>

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

<h2 id="Приклади">Приклади</h2>

<pre class="brush: js">// За замовчуванням об'єкти не запечатані.
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
// (для аксесорів має значення тільки доступність для налаштування)
</pre>

<h2 id="Примітки">Примітки</h2>

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

<pre class="brush: js">Object.isSealed(1);
// TypeError: 1 is not an object (код ES5)

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

<h2 id="Специфікації">Специфікації</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Специфікація</th>
   <th scope="col">Статус</th>
   <th scope="col">Коментар</th>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.2.3.11', 'Object.isSealed')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-object.issealed', 'Object.isSealed')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-object.issealed', 'Object.isSealed')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>

<div>


<p>{{Compat("javascript.builtins.Object.isSealed")}}</p>
</div>

<h2 id="Див._також">Див. також</h2>

<ul>
 <li>{{jsxref("Object.seal()")}}</li>
 <li>{{jsxref("Object.preventExtensions()")}}</li>
 <li>{{jsxref("Object.isExtensible()")}}</li>
 <li>{{jsxref("Object.freeze()")}}</li>
 <li>{{jsxref("Object.isFrozen()")}}</li>
</ul>