aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/operators/new.target/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/operators/new.target/index.html')
-rw-r--r--files/uk/web/javascript/reference/operators/new.target/index.html97
1 files changed, 0 insertions, 97 deletions
diff --git a/files/uk/web/javascript/reference/operators/new.target/index.html b/files/uk/web/javascript/reference/operators/new.target/index.html
deleted file mode 100644
index fd0e121e3a..0000000000
--- a/files/uk/web/javascript/reference/operators/new.target/index.html
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: new.target
-slug: Web/JavaScript/Reference/Operators/new.target
-translation_of: Web/JavaScript/Reference/Operators/new.target
----
-<div>{{JSSidebar("Operators")}}</div>
-
-<p>Псевдовластивість<strong> <code>new.target</code></strong> дозволяє виявляти, чи були функції або конструктори створені за допомогою оператора <a href="/uk/docs/Web/JavaScript/Reference/Operators/new">new</a>. У конструкторах та функціях, запущених з використанням оператора <a href="/uk/docs/Web/JavaScript/Reference/Operators/new">new</a>, <code>new.target</code> повертає посилання на конструктор або функцію. У звичайних викликах функцій <code>new.target</code> дорівнює {{jsxref("undefined")}}.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/expressions-newtarget.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">new.target</pre>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Синтаксис <code>new.target</code> складається з ключового слова <code>new</code>, крапки та ідентифікатора <code>target</code>. Зазвичай, зліва від крапки стоїть об'єкт, до властивості якого здійснюється звернення, але тут <code>new</code> не є об'єктом.</p>
-
-<p>Псевдовластивість <code>new.target</code> доступна в усіх функціях. У конструкторах класів вона посилається на зконструйований клас. У звичайних функціях вона посилається на саму функцію, за умови, що вона була викликана з використанням оператора <a href="/uk/docs/Web/JavaScript/Reference/Operators/new">new</a>; в інших випадках <code>new.target</code> дорівнює {{jsxref("undefined")}}. У <a href="/uk/docs/Web/JavaScript/Reference/Functions/Стрілкові_функції">стрілкових функціях </a><code>new.target</code> успадковується від оточуючої області видимості.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="new.target_у_викликах_функцій">new.target у викликах функцій</h3>
-
-<p>У звичайних викликах функцій (як протилежність викликам конструкторів) <code>new.target</code> дорівнює {{jsxref("undefined")}}. Це дозволяє визначити, чи була функція викликана з <a href="/uk/docs/Web/JavaScript/Reference/Operators/new">new</a> як конструктор.</p>
-
-<pre class="brush: js">function Foo() {
- if (!new.target) throw 'Foo() має викликатись з new';
- console.log('Foo викликано з new');
-}
-
-new Foo(); // виводить "Foo викликано з new"
-Foo(); // викидає "Foo() має викликатись з new"
-</pre>
-
-<h3 id="new.target_у_конструкторах">new.target у конструкторах</h3>
-
-<p>У конструкторах класів <code>new.target</code> посилається на конструктор, що був безпосередньо викликаний <code>new</code>. Це також стосується випадку, коли конструктор знаходиться у батьківському класі та був делегований з дочірнього конструктора.</p>
-
-<pre class="brush: js">class A {
- constructor() {
- console.log(new.target.name);
- }
-}
-
-class B extends A { constructor() { super(); } }
-
-var a = new A(); // виводить "A"
-var b = new B(); // виводить "B"
-
-class C { constructor() { console.log(new.target); } }
-class D extends C { constructor() { super(); } }
-
-var c = new C(); // виводить class C{constructor(){console.log(new.target);}}
-var d = new D(); // виводить class D extends C{constructor(){super();}}</pre>
-
-<p class="summary">Отже, з наведеного вище прикладу класів C та D, схоже, що <code>new.target</code> вказує на визначення класу, екземпляр якого було ініціалізовано. Наприклад, коли було ініціалізовано екземпляр D за допомогою new, було виведено визначення класу D, і схожим чином у випадку з c, було виведено клас C.</p>
-
-<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('ES2015', '#sec-built-in-function-objects', 'Built-in Function Objects')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Початкове визначення.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-built-in-function-objects', 'Built-in Function Objects')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.operators.new_target")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Reference/Functions">Функції</a></li>
- <li><a href="/uk/docs/Web/JavaScript/Reference/Classes">Класи</a></li>
- <li><code><a href="/uk/docs/Web/JavaScript/Reference/Operators/new">new</a></code></li>
- <li><code><a href="/uk/docs/Web/JavaScript/Reference/Operators/this">this</a></code></li>
-</ul>