diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
| commit | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch) | |
| tree | a9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/object/isfrozen | |
| parent | 074785cea106179cb3305637055ab0a009ca74f2 (diff) | |
| download | translated-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.html | 178 |
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> |
