diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/symbol/unscopables/index.html')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/symbol/unscopables/index.html | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/symbol/unscopables/index.html b/files/uk/web/javascript/reference/global_objects/symbol/unscopables/index.html deleted file mode 100644 index 5b90c252d4..0000000000 --- a/files/uk/web/javascript/reference/global_objects/symbol/unscopables/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Symbol.unscopables -slug: Web/JavaScript/Reference/Global_Objects/Symbol/unscopables -tags: - - ECMAScript 2015 - - JavaScript - - Symbol - - Властивість - - Символ -translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/unscopables ---- -<div>{{JSRef}}</div> - -<p>Добревідомий символ <strong><code>Symbol.unscopables</code></strong> використовується, щоб визначити об'єкт, чиї імена особистих та успадкованих властивостей виключаються з прив'язок оточення <code><a href="/uk/docs/Web/JavaScript/Reference/Statements/with">with</a></code> для асоційованого об'єкта.</p> - -<div>{{EmbedInteractiveExample("pages/js/symbol-unscopables.html")}}</div> - - - -<h2 id="Опис">Опис</h2> - -<p>Символ <code>@@unscopables</code> (<code>Symbol.unscopables</code>) можна визначити на будь-якому об'єкті, щоб запобігти розкриттю імен властивостей в якості лексичних змінних у прив'язках оточення <code><a href="/uk/docs/Web/JavaScript/Reference/Statements/with">with</a></code>. Зауважте, що при використанні <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">строгого режиму</a> інструкції <code>with</code> недоступні та, відповідно, не потребують цього символа.</p> - -<p>Присвоєння властивості значення <code>true</code> у об'єкті <code>unscopables</code> зробить її невидимою (<em>unscopable</em>), і, таким чином, вона не з'явиться у змінних лексичної області видимості. Присвоєння властивості значення <code>false</code> зробить її видимою (<code>scopable</code>), відповідно, вона з'явиться у змінних лексичної області видимості.</p> - -<p>{{js_property_attributes(0,0,0)}}</p> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Видимість_у_інструкціях_with">Видимість у інструкціях with</h3> - -<p>Наступний код добре працює у версіях ES5 та нижче. Однак, у ECMAScript 2015 та пізніших версіях був запроваджений метод {{jsxref("Array.prototype.keys()")}}. Це означає, що всередині оточення <code>with</code> "keys" тепер буде методом, а не змінною. Саме тоді був доданий символ <code>unscopables</code>. Вбудоване налаштування <code>unscopables</code> реалізоване у вигляді {{jsxref("Array.@@unscopables", "Array.prototype[@@unscopables]")}}, щоб запобігти потраплянню деяких методів масиву у область видимості <code>with</code>.</p> - -<pre class="brush: js notranslate">var keys = []; - -with (Array.prototype) { - keys.push('something'); -} - -Object.keys(Array.prototype[Symbol.unscopables]); -// ["copyWithin", "entries", "fill", "find", "findIndex", -// "includes", "keys", "values"] -</pre> - -<h3 id="Unscopables_у_обєктах">Unscopables у об'єктах</h3> - -<p>Ви також можете налаштувати <code>unscopables</code> для своїх власних об'єктів.</p> - -<pre class="brush: js notranslate">var obj = { - foo: 1, - bar: 2 -}; - -obj[Symbol.unscopables] = { - foo: false, - bar: true -}; - -with (obj) { - console.log(foo); // 1 - console.log(bar); // ReferenceError: bar is not defined -} -</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Специфікація</th> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-symbol.unscopables', 'Symbol.unscopables')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> - - - -<p>{{Compat("javascript.builtins.Symbol.unscopables")}}</p> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li>{{jsxref("Array.@@unscopables", "Array.prototype[@@unscopables]")}}</li> - <li>оператор <code><a href="/uk/docs/Web/JavaScript/Reference/Statements/with">with</a></code> (недоступний у <a href="/uk/docs/Web/JavaScript/Reference/Strict_mode">строгому режимі</a>)</li> -</ul> |
