aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/function/call
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/function/call')
-rw-r--r--files/uk/web/javascript/reference/global_objects/function/call/index.html168
1 files changed, 0 insertions, 168 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/function/call/index.html b/files/uk/web/javascript/reference/global_objects/function/call/index.html
deleted file mode 100644
index caa12e71b0..0000000000
--- a/files/uk/web/javascript/reference/global_objects/function/call/index.html
+++ /dev/null
@@ -1,168 +0,0 @@
----
-title: Function.prototype.call()
-slug: Web/JavaScript/Reference/Global_Objects/Function/call
-tags:
- - Function
- - JavaScript
- - Method
-translation_of: Web/JavaScript/Reference/Global_Objects/Function/call
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>call()</strong></code> викликає функцію із вказаним значенням <code>this</code> та зазначеним переліком аргументів.</p>
-
-<div class="note">
-<p><strong>Заувага:</strong> Хоча за своїм призначенням цей метод і {{jsxref("Function.prototype.apply", "apply()")}} є тотожними, аргументи для викликаної функції передаються в дещо різний спосіб: метод <code>call()</code> приймає їх <strong>перелік</strong>, тоді як метод <code>apply()</code> приймає їх <strong>масив</strong>.</p>
-</div>
-
-<div>{{EmbedInteractiveExample("pages/js/function-call.html")}}</div>
-
-<p class="hidden">Першокод цього прикладу збережено у репозиторії GitHub. Якщо ви хочете долучитися до створення чи поліпшення таких прикладів, пропонуйте нам свої зміни до репозиторію <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a>.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>function</var>.call(<var>thisArg</var>[, <var>arg1</var>[, <var>arg2</var>[, ...]]])</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>thisArg</code> {{optional_inline}}</dt>
- <dd>Значення <code>this</code>, яке буде застосовано для виклику <code>function</code>. Зауважте, що значення <code>thisArg</code> може зазнати перетворень — якщо функція <code>function</code> виконується у {{jsxref("Functions_and_function_scope/Strict_mode", "поблажливому режимі", "", 1)}}, тоді замість {{jsxref("Global_Objects/null", "null")}} та {{jsxref("Global_Objects/undefined", "undefined")}} буде застосовано {{glossary("Global_object", "глобальний об'єкт")}}, а {{glossary("Primitive", "прості величини")}} буде обернено на об'єкти.</dd>
- <dt><code>arg1, arg2, ...</code> {{optional_inline}}</dt>
- <dd>Аргументи, що їх буде передано до функції <code>function</code>.</dd>
-</dl>
-
-<h3 id="Вертає">Вертає</h3>
-
-<p>Значення, яке внаслідок виклику повернула сама функція <code>function</code>.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>call()</code> здійснює виклик функції, заступаючи значення ключового слова <code>this</code> всередині неї значенням, переданим до <code>call()</code> як перший аргумент. Це уможливлює одноразове написання деякої функції з можливістю її надалі викликати для всякого об'єкта так, наче вона є його методом.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Виклик_успадкованих_конструкторів_за_допомогою_call">Виклик успадкованих конструкторів за допомогою <code>call</code></h3>
-
-<p>Методом <code>call()</code> можна скористатись для створення ланцюжка конструкторів об'єкта, як у Java. У наведеному прикладі конструктор <code>Product</code> (виріб) має два параметри: назву (<code>name</code>) й ціну (<code>price</code>). Два інші конструктори — <code>Food</code> (їжа) і <code>Toy</code> (цяцька) — спершу викликають конструктор <code>Product</code>, передаючи потрібні йому значення <code>name</code> і <code>price</code>, а відтак додають окрему властивість <code>category</code> (різновид).</p>
-
-<pre class="brush: js">function Product(name, price) {
- this.name = name;
- this.price = price;
-}
-
-function Food(name, price) {
- Product.call(this, name, price);
- this.category = 'food';
-}
-
-function Toy(name, price) {
- Product.call(this, name, price);
- this.category = 'toy';
-}
-
-var cheese = new Food('feta', 5);
-var fun = new Toy('robot', 40);
-</pre>
-
-<h3 id="Виклик_неназваних_функцій_за_допомогою_метода_call">Виклик неназваних функцій за допомогою метода <code>call</code></h3>
-
-<p>Цей суто надуманий приклад містить використання метода <code>call</code> для виклику анонімної функції на кожному об'єкті з масиву.</p>
-
-<p>Всередині цієї анонімної функції кожен об'єкт отримує окремий метод <code>print</code>, що друкуватиме значення властивостей об'єкта та його розташунок (індекс) в масиві. Передача об'єкта саме як <code>this</code> не є необхідністю, а вжито лише задля наочності.</p>
-
-<pre class="brush: js">var animals = [
- { species: 'Лев', name: 'Король' },
- { species: 'Пантера', name: 'Багіра' }
-];
-
-for (var i = 0; i &lt; animals.length; i++) {
- (function(i) {
- this.print = function() {
- console.log(i, this.species, this.name);
- }
- this.print();
- }).call(animals[i], i);
-}
-</pre>
-
-<h3 id="Виклик_функції_та_перевиознака_this_за_допомогою_метода_call">Виклик функції та перевиознака <code>this</code> за допомогою метода <code>call</code></h3>
-
-<p>Під час виклику функції <code>greet</code> в цьому прикладі значення <code>this</code> буде прив'язано до об'єкта <code>obj</code>:</p>
-
-<pre class="brush: js">function greet() {
- var message = 'Вітаємо, ' + (this.isMale ? 'пане ' : 'пані ') + this.name;
- console.log(message);
-}
-
-var obj = {
- isMale: false, name: 'Олено'
-};
-
-greet.call(obj); // Вітаємо, пані Олено
-</pre>
-
-<h3 id="Виклик_функції_за_допомогою_метода_call_без_зазначення_першого_аргумента">Виклик функції за допомогою метода <code>call</code> без зазначення першого аргумента</h3>
-
-<p>Як засвідчує цей приклад, відсутність першого аргумента метода <code>call</code> має наслідком прив'язування <code>this</code> до {{glossary('global object', 'глобального об\'єкта')}}:</p>
-
-<pre class="brush: js">var name = 'Тарас';
-
-var x = {
- name: 'Микола',
- display: function() {
- console.log('Мене звуть ' + this.name);
- }
-};
-
-x.display(); // Мене звуть Микола
-x.display.call(); // Мене звуть Тарас
-</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('ES1')}}</td>
- <td>{{Spec2('ES1')}}</td>
- <td>Початкова виознака. Запроваджено у JavaScript 1.3.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.3.4.4', 'Function.prototype.call')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-function.prototype.call', 'Function.prototype.call')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-function.prototype.call', 'Function.prototype.call')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>
-
-<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
-
-<div>{{Compat("javascript.builtins.Function.call")}}</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Function.prototype.bind()")}}</li>
- <li>{{jsxref("Function.prototype.apply()")}}</li>
- <li>
- <p><a href="/uk/docs/Learn/JavaScript/Objects">Вступ до об'єктів JavaScript</a></p>
- </li>
-</ul>