diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/globalthis/index.html')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/globalthis/index.html | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/globalthis/index.html b/files/uk/web/javascript/reference/global_objects/globalthis/index.html deleted file mode 100644 index 5646082567..0000000000 --- a/files/uk/web/javascript/reference/global_objects/globalthis/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: globalThis -slug: Web/JavaScript/Reference/Global_Objects/globalThis -translation_of: Web/JavaScript/Reference/Global_Objects/globalThis ---- -<div>{{jsSidebar("Objects")}}</div> - -<p><span class="seoSummary">Глобальна властивість <code><strong>globalThis</strong></code> містить значення глобального <code>this</code>, яке являється глобальним об'єктом.</span></p> - -<div>{{EmbedInteractiveExample("pages/js/globalprops-globalthis.html")}}</div> - -<p class="hidden">Код для цього інтерактивного приклада зберігається в репозитарії на GitHub. Якщо Ви бажаєте приєднатися до проекту інтерактивних прикладів, будь-ласка зклонуйте <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> та відправте нам "pull request".</p> - -<p>{{JS_Property_Attributes(1, 0, 1)}}</p> - -<h2 id="Синтакс">Синтакс</h2> - -<pre class="syntaxbox">globalThis -</pre> - -<h2 id="Опис">Опис</h2> - -<p>Історично, для доступу до глобальних об'єктів використовується різний синтаксис в різних оточеннях JavaScript. В Веб ви можете використовувати {{domxref("Window.window", "window")}}, {{domxref("Window.self", "self")}}, або {{domxref("Window.frames", "frames")}} - але в <a href="/en-US/docs/Web/API/Worker">Веб Воркерах</a> лише <code>self</code> працюватиме. В Node.js нічого з вище-перерахоованого не працюватиме, і ви повинні використовувати <code>global</code>.<br> - Ключове слово <code>this</code> ви можете використовувати в середині функцій в не-суворому режимі, інакше <code>this</code> буде <code>undefined</code> в Модулях та в середині функцій в суворому режимі. Ви також можете використовувати <code>Function('return this')()</code>, але середовища, що відключають {{jsxref("eval", "eval()")}}, типу <a href="/en-US/docs/Glossary/CSP">CSP</a> в браузерах, перешкоджають використанню {{jsxref("Function")}} в такому вигляді.</p> - -<p>Властивість <code>globalThis</code> надає стандартний метод доступу до глобального значення <code>this</code> (і як наслідок, безпосередньо до глобального об'єкту) не залежно від середовища. Навідміну від подібних властивостей, таких як <code>window</code> та <code>self</code>, воно гарантує роботу в середовищі де є <code>window</code> та де його немає. Таким чином, ви можете отримати доступ до глобального об'єкту навіть не знаючи в якому середовищі працює код. Щоб запам'ятати назву, просто запам'ятайте що в глобальному отчені значення <code>this</code> дорівнює <code>globalThis</code>.</p> - -<h3 id="HTML_та_WindowProxy">HTML та WindowProxy</h3> - -<p>В різних двіжках об'єкт <code>globalThis</code> буде посиланням до безпосередього глобального об'єкту, але в браузерах, через міркування безпеки в iframe та cross-window взаємодії, він є посиланням до {{jsxref("Proxy")}} навколо фактичного глобалього об'єкту(до якого ви не можете звернутися безпосередньо). Ця відмінність рідко є актуальною для загального використання, але важливо її запам'ятати.</p> - -<h3 id="Іменування">Іменування</h3> - -<p>Деякі інші популярні варіанти імен, такі як <code>self</code> та <code>global</code> були видалені з розгляду через їх схильність порушити сумістність з існуючим кодом. Детальніше дивіться <a href="https://github.com/tc39/proposal-global/blob/master/NAMING.md">документ мовних пропозиції</a>.</p> - -<h2 id="Приклади">Приклади</h2> - -<p>Задовго до <code>globalThis</code>, єдиним надійним крос-платформенним варіантом отримати глобальний об'єкт для оточення був <code>Function('return this')()</code>. Однак, він був причиною <a href="/en-US/docs/Web/HTTP/CSP">CSP</a> порушень в деяких налаштуваннях, таким чином <a href="https://github.com/paulmillr/es6-shim">es6-shim</a> використовує додаткову перевірку, наприклад:</p> - -<pre class="brush: js">var getGlobal = function () { - if (typeof self !== 'undefined') { return self; } - if (typeof window !== 'undefined') { return window; } - if (typeof global !== 'undefined') { return global; } - throw new Error('unable to locate global object'); -}; - -var globals = getGlobal(); - -if (typeof globals.setTimeout !== 'function') { - // нема setTimeout в даному оточенні! -} -</pre> - -<p>За допомогою <code>globalThis</code>, додатковий пошук/перевірки для глобального об'єкту не потрібні більше:</p> - -<pre class="brush: js">if (typeof globalThis.setTimeout !== 'function') { - // нема setTimeout в даному оточенні! -}</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("ESDraft", "#sec-globalthis", "<code>globalThis</code>")}}</td> - <td>{{Spec2("ESDraft")}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Браузерна_Сумістність">Браузерна Сумістність</h2> - -<div class="hidden">Таблиця сумістності на цій сторінці згенерована з структурованних данних. Якщо ви бажаєте прийняти участь в формуванні даних, будь-ласка, перевірте <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> та направте нам "pull request".</div> - -<p>{{Compat("javascript.builtins.globalThis")}}</p> |
