JavaScript apply() — виклик функції з масивом аргументів
Метод apply() викликає функцію із заданим this, а аргументи бере масивом.
Загальний опис
Історично він був єдиним способом передати функції масив аргументів. Звідси знаменитий трюк Math.max.apply(null, numbers) — бо Math.max() приймає числа через кому, а не масив.
Спред-оператор зробив його непотрібним: Math.max(...numbers) робить те саме, коротше й зрозуміліше.
Тому сьогодні apply() майже не пишуть — але в старому коді його повно.
- Порада
-
Побачив
автор: NagarDfn.apply(null, args)— це простоfn(...args)мовою 2010-х.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| apply | 1+ | 1+ | 1+ | 3+ | 12+ | 9+ |
| Переглядач | ||||
|---|---|---|---|---|
| apply | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Історичний трюк — і його сучасна форма.
const numbers = [5, 2, 9, 1];
// так робили роками
console.log(Math.max.apply(null, numbers)); // 9
// а це те саме, лише зрозуміло
console.log(Math.max(...numbers)); // 9
// із заданим this
function greet(greeting) {
return greeting + ', ' + this.name;
}
console.log(greet.apply({ name: 'Іван' }, ['Вітаю']));
Коментарі
Коментарів ще немає — будьте першим!