JavaScript apply() — виклик функції з масивом аргументів


Метод apply() викликає функцію із заданим this, а аргументи бере масивом.

автор: NagarD

Загальний опис

Історично він був єдиним способом передати функції масив аргументів. Звідси знаменитий трюк Math.max.apply(null, numbers) — бо Math.max() приймає числа через кому, а не масив.

Спред-оператор зробив його непотрібним: Math.max(...numbers) робить те саме, коротше й зрозуміліше.

Тому сьогодні apply() майже не пишуть — але в старому коді його повно.

автор: NagarD

Порада

Побачив fn.apply(null, args) — це просто fn(...args) мовою 2010-х.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
apply 1+ 1+ 1+ 3+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
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: 'Іван' }, ['Вітаю']));
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід