diff options
| author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
| commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
| tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/uk/web/javascript/reference/functions/method_definitions | |
| parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
| download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip | |
remove retired locales (#699)
Diffstat (limited to 'files/uk/web/javascript/reference/functions/method_definitions')
| -rw-r--r-- | files/uk/web/javascript/reference/functions/method_definitions/index.html | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/files/uk/web/javascript/reference/functions/method_definitions/index.html b/files/uk/web/javascript/reference/functions/method_definitions/index.html deleted file mode 100644 index 3930fff286..0000000000 --- a/files/uk/web/javascript/reference/functions/method_definitions/index.html +++ /dev/null @@ -1,219 +0,0 @@ ---- -title: Method definitions -slug: Web/JavaScript/Reference/Functions/Method_definitions -tags: - - ECMAScript 2015 - - JavaScript - - Об'єкт - - Синтаксис - - Скорочення - - функції -translation_of: Web/JavaScript/Reference/Functions/Method_definitions ---- -<div>{{JsSidebar("Functions")}}</div> - -<p>Починаючи з ECMAScript 2015, з'явився скорочений спосіб визначення методів для обєктів. Який допоможе вам простіше привязати функцію до імя методу обєкта.</p> - -<div>{{EmbedInteractiveExample("pages/js/functions-definitions.html")}}</div> - - - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox notranslate">var obj = { - <var>property</var>( <var>parameters…</var> ) {}, - *<var>generator</var>( <var>parameters…</var> ) {}, - async property( <var>parameters…</var> ) {}, - async* generator( <var>parameters…</var> ) {}, - - // з обчисленими ключами: - [property]( <var>parameters…</var> ) {}, - *[generator]( <var>parameters…</var> ) {}, - async [property]( <var>parameters…</var> ) {}, - - // порівняйте getter/setter синтаксис: - get <var>property</var>() {}, - set <var>property</var>(<var>value</var>) {} -}; -</pre> - -<h2 id="Опис">Опис</h2> - -<p>Скорочений синтаксис подібний до синтаксису <a href="/en-US/docs/Web/JavaScript/Reference/Functions/get">getter</a> і <a href="/en-US/docs/Web/JavaScript/Reference/Functions/set">setter</a> оголошенних в ECMAScript 2015.</p> - -<p>Отже, цей код:</p> - -<pre class="brush: js notranslate">var obj = { - foo: function() { - /* код */ - }, - bar: function() { - /* код */ - } -}; -</pre> - -<p>Ви здатні скоротити до:</p> - -<pre class="brush: js notranslate">var obj = { - foo() { - /* код */ - }, - bar() { - /* код */ - } -}; - -</pre> - -<h3 id="Генераторні_методи">Генераторні методи</h3> - -<p><a href="/en-US/docs/Web/JavaScript/Reference/Statements/function*">Генераторні методи</a> також можуть бути визначенні за допомогою скороченного синтаксису. Користуючить ними:</p> - -<ul> - <li>зірочка (*) повинна бути перед іменем генераторного методу. Тобто, <code>* g(){}</code> - це працюватиме, <code>g *(){}</code> - це ні.</li> - <li>всі не генераторні визначення методів не можуть використовувати ключове слово <code>yield</code>. Це означає, що <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Legacy_generator_function">застарілі генераторні функції</a> також не працюватимуть і викинуть {{jsxref("SyntaxError")}}. Завжди використовуйте <code>yield</code> разом із зірочкою (*).</li> -</ul> - -<pre class="brush: js;highlight[12] notranslate">// Використовуючи названу властивіть -var obj2 = { - g: function* () { - var index = 0; - while (true) - yield index++; - } -}; - -// Ідентичний обєкт використовуючи скорочений синтаксис -var obj2 = { - * g() { - var index = 0; - while (true) - yield index++; - } -}; - -var it = obj2.g(); -console.log(it.next().value); // 0 -console.log(it.next().value); // 1</pre> - -<h3 id="Async_методи">Async методи</h3> - -<p>{{jsxref("Statements/async_function", "Async methods", "", 1)}} також можуть бути визначенні використовуючи скорочення.</p> - -<pre class="brush: js;highlight[12] notranslate">// Використовуючи названу властивіть -var obj3 = { - f: async function () { - await some_promise; - } -}; - -// Ідентичний обєкт використовуючи скорочений синтаксис -var obj3 = { - async f() { - await some_promise; - } -}; -</pre> - -<h3 id="Async_генераторні_методи">Async генераторні методи</h3> - -<p><a href="/en-US/docs/Web/JavaScript/Reference/Statements/function*">Генераторні методи</a> також можуть бути {{jsxref("Statements/async_function", "async", "", 1)}}.</p> - -<pre class="brush: js notranslate">var obj4 = { - f: async function* () { - yield 1; - yield 2; - yield 3; - } -}; - -// Ідентичний обєкт використовуючи скорочений синтаксис -var obj4 = { - async* f() { - yield 1; - yield 2; - yield 3; - } -};</pre> - -<h3 id="Визначенні_методи_за_допомогою_скорочення_-_не_є_конструкторами">Визначенні методи за допомогою скорочення - не є конструкторами</h3> - -<p>Любі визначенні методи за допомогою скорочення не є конструктором і викинуть {{jsxref("TypeError")}}, якщо ви попробуєте створити <span class="tlid-translation translation" lang="uk"><span title="">екземпляр обєкту за допомогою них</span></span>.</p> - -<pre class="brush: js example-bad notranslate">var obj = { - method() {} -}; -new obj.method; // TypeError: obj.method is not a constructor - -var obj = { - * g() {} -}; -new obj.g; // TypeError: obj.g is not a constructor (changed in ES2016) -</pre> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Базові_випадки">Базові випадки</h3> - -<pre class="brush: js;highlight[3] notranslate">var obj = { - a: 'foo', - b() { return this.a; } -}; -console.log(obj.b()); // "foo" -</pre> - -<h3 id="Обчисленні_імена_властивостей">Обчисленні імена властивостей</h3> - -<p>Скороченний синтаксис також підтримує обчисленні імена властивостей.</p> - -<pre class="brush: js;highlight[4] notranslate">var bar = { - foo0: function() { return 0; }, - foo1() { return 1; }, - ['foo' + 2]() { return 2; } -}; - -console.log(bar.foo0()); // 0 -console.log(bar.foo1()); // 1 -console.log(bar.foo2()); // 2</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-method-definitions', 'Method definitions')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ES2016', '#sec-method-definitions', 'Method definitions')}}</td> - <td>{{Spec2('ES2016')}}</td> - <td>Changed that generator methods should also not have a [[Construct]] trap and will throw when used with <code>new</code>.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Підтримка_браузерів">Підтримка браузерів</h2> - - - -<p>{{Compat("javascript.functions.method_definitions")}}</p> - -<h2 id="Дивитися_також"><span class="tlid-translation translation" lang="uk"><span title="">Дивитися також</span></span></h2> - -<ul> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/get">get</a></code></li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/set">set</a></code></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar">Lexical grammar</a></li> -</ul> |
