objavlenie_funkcii

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
objavlenie_funkcii [2023/11/20 21:13]
tro
objavlenie_funkcii [2023/11/20 21:20] (текущий)
tro [Виклик функціхї]
Строка 193: Строка 193:
 console.log(Math.max(...temps)); // 25 console.log(Math.max(...temps)); // 25
 </code> </code>
-==== Виклик функціхї ====+==== Виклик функції ====
 === Створення функції як методу змінної-обїекта === === Створення функції як методу змінної-обїекта ===
 <code> <code>
Строка 226: Строка 226:
 showThis(); // "this in showThis: undefined" showThis(); // "this in showThis: undefined"
 </code> </code>
-==== Вказання контексту виклику функції ==== +===== Вказання контексту виклику функції ===== 
-=== call ===+==== call ====
 <code> <code>
 foo.call(thisArg, arg1, arg2, ...) foo.call(thisArg, arg1, arg2, ...)
Строка 234: Строка 234:
   * arg1, arg2, ... — необов'язкові аргументи, які будуть передані функції   * arg1, arg2, ... — необов'язкові аргументи, які будуть передані функції
 Метод call викликає функцію foo так, що значення this у функції буде посилатися на об'єкт thisArg, і також передає їй аргументи arg1, arg2 тощо. Метод call викликає функцію foo так, що значення this у функції буде посилатися на об'єкт thisArg, і також передає їй аргументи arg1, arg2 тощо.
-=== apply ===+==== apply ====
 Метод apply є аналогом методу call. Відмінність у тому, що в методі apply() синтаксис передачі аргументів вимагає масиву, навіть якщо аргументи функції — це окремі значення. Метод apply є аналогом методу call. Відмінність у тому, що в методі apply() синтаксис передачі аргументів вимагає масиву, навіть якщо аргументи функції — це окремі значення.
 <code> <code>
 foo.apply(thisArg, [arg1, arg2, ...]) foo.apply(thisArg, [arg1, arg2, ...])
 </code> </code>
-=== bind ===+==== bind ===
 +Метод bind створює і повертає нову функцію, яка має заздалегідь встановлений контекст, і ця нова функція може бути викликана пізніше з будь-якими аргументами. 
 +<code> 
 +const boundFoo = foo.bind(thisArg, arg1, arg2, ...) 
 +</code> 
 +Приклад 
 +<code> 
 +"use strict";
  
 +const customer = {
 +  username: "Jacob",
 + sayHello() {
 + console.log(`Hello, ${this.username}!`);
 +  }
 +};
 +
 +customer.sayHello(); // "Hello, Jacob!"
 +
 +const greet = customer.sayHello.bind(customer);
 +
 +greet(); // "Hello, Jacob!"
 +</code>
 +Коли ми використовуємо bind(), ми створюємо нову функцію greet. Ця нова функція завжди матиме правильний контекст і може використовувати властивість username об'єкта customer.
  
  
  • /sites/data/attic/objavlenie_funkcii.1700514795.txt.gz
  • Последнее изменение: 2023/11/20 21:13
  • tro