aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/object/isfrozen
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/object/isfrozen
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/object/isfrozen')
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html178
1 files changed, 178 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html
new file mode 100644
index 0000000000..b693befb9a
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html
@@ -0,0 +1,178 @@
+---
+title: Object.isFrozen()
+slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+tags:
+ - ECMAScript 5
+ - JavaScript
+ - Об'єкт
+ - метод
+ - розширюваний
+translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+---
+<div>{{JSRef}}</div>
+
+<p>Метод <code><strong>Object.isFrozen()</strong></code> визначає, чи є об'єкт {{jsxref("Object.freeze()", "замороженим", "", 1)}}.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/object-isfrozen.html")}}</div>
+
+
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><code>Object.isFrozen(<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>Об'єкт є замороженим тільки тоді, коли він не є {{jsxref("Object.isExtensible()", "розширюваним", "", 1)}}, всі його властивості недоступні для налаштування, і всі його властивості-значення (тобто, властивості, які не є властивостями-аксесорами, що мають гетер або сетер) недоступні для запису.</p>
+
+<h2 id="Приклади">Приклади</h2>
+
+<pre class="brush: js">// Новий об'єкт є розширюваним, отже, він не заморожений
+Object.isFrozen({}); // === false
+
+// Пустий об'єкт, котрий є нерозширюваним,
+// є порожньо замороженим.
+var vacuouslyFrozen = Object.preventExtensions({});
+Object.isFrozen(vacuouslyFrozen); // === true
+
+// Новий об'єкт з однією властивістю є також розширюваним,
+// отже, не заморожений.
+var oneProp = { p: 42 };
+Object.isFrozen(oneProp); // === false
+
+// Припинення розширювання об'єкту не робить його замороженим,
+// тому що властивість досі доступна
+// для налаштування (та запису).
+Object.preventExtensions(oneProp);
+Object.isFrozen(oneProp); // === false
+
+// ...але видалення цієї властивості робить об'єкт
+// порожньо замороженим.
+delete oneProp.p;
+Object.isFrozen(oneProp); // === true
+
+// Нерозширюваний об'єкт з властивістю, недоступною для запису,
+// але доступною для налаштування, не є замороженим.
+var nonWritable = { e: 'plep' };
+Object.preventExtensions(nonWritable);
+Object.defineProperty(nonWritable, 'e', {
+  writable: false
+}); // зробити властивість недоступною для запису
+Object.isFrozen(nonWritable); // === false
+
+// Якщо зробити цю властивість недоступною для налаштування,
+// тоді об'єкт буде замороженим.
+Object.defineProperty(nonWritable, 'e', {
+  configurable: false
+}); // зробити властивість недоступною для налаштування
+Object.isFrozen(nonWritable); // === true
+
+// Нерозширюваний об'єкт з властивістю, недоступною
+// для налаштування, але доступною для запису, також не є замороженим.
+var nonConfigurable = { release: 'the kraken!' };
+Object.preventExtensions(nonConfigurable);
+Object.defineProperty(nonConfigurable, 'release', {
+  configurable: false
+});
+Object.isFrozen(nonConfigurable); // === false
+
+// Якщо зробити цю властивість недоступною для запису,
+// тоді об'єкт буде заморожений.
+Object.defineProperty(nonConfigurable, 'release', {
+  writable: false
+});
+Object.isFrozen(nonConfigurable); // === true
+
+// Нерозширюваний об'єкт з властивістю-аксесором,
+// доступною для налаштування, не є замороженим.
+var accessor = { get food() { return 'ням'; } };
+Object.preventExtensions(accessor);
+Object.isFrozen(accessor); // === false
+
+// ...але якщо зробити цю властивість недоступною для налаштування,
+// тоді об'єкт буде замороженим.
+Object.defineProperty(accessor, 'food', {
+  configurable: false
+});
+Object.isFrozen(accessor); // === true
+
+// Але найпростіший спосіб зробити об'єкт замороженим -
+// це викликати на ньому метод Object.freeze.
+var frozen = { 1: 81 };
+Object.isFrozen(frozen); // === false
+Object.freeze(frozen);
+Object.isFrozen(frozen); // === true
+
+// За визначенням, заморожений об'єкт є нерозширюваним.
+Object.isExtensible(frozen); // === false
+
+// Також, за визначенням, заморожений об'єкт є запечатаним.
+Object.isSealed(frozen); // === true
+</pre>
+
+<h2 id="Примітки">Примітки</h2>
+
+<p>У ES5, якщо аргументом цього методу є не об'єкт (примітив), це спричинить {{jsxref("TypeError")}}. У ES2015 аргумент, що не є об'єктом, сприйматиметься як звичайний заморожений об'єкт, метод просто поверне <code>true</code>.</p>
+
+<pre class="brush: js">Object.isFrozen(1);
+// TypeError: 1 is not an object (код ES5)
+
+Object.isFrozen(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.12', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+<div>
+
+
+<p>{{Compat("javascript.builtins.Object.isFrozen")}}</p>
+</div>
+
+<h2 id="Дивіться_також">Дивіться також</h2>
+
+<ul>
+ <li>{{jsxref("Object.freeze()")}}</li>
+ <li>{{jsxref("Object.preventExtensions()")}}</li>
+ <li>{{jsxref("Object.isExtensible()")}}</li>
+ <li>{{jsxref("Object.seal()")}}</li>
+ <li>{{jsxref("Object.isSealed()")}}</li>
+</ul>