Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Function.prototype.apply

Вызывает функцию с указанным this и массивом аргументов.

Доступно с: ES3

Синтаксис

fn.apply(thisArg, argsArray)

Параметры

ПараметрТипОписание
thisArganyЗначение this при вызове.
argsArrayArrayМассив аргументов.

Возвращаемое значение

anyРезультат функции.

Примеры

Аргументы массивом:

function introduce(greeting, punctuation) {
  return `${greeting}, I am ${this.name}${punctuation}`;
}
 
console.log(introduce.apply({ name: 'Anna' }, ['Hi', '!']));

Результат:

Hi, I am Anna!

Раньше так находили максимум массива, сейчас — через spread:

const numbers = [3, 9, 4];
 
console.log(Math.max.apply(null, numbers));
console.log(Math.max(...numbers));

Результат:

9
9

Примечания

В современном коде apply() почти полностью заменён оператором spread: fn(...args) или fn.call(thisArg, ...args).

См. также

  • Function.prototype.call — Вызывает функцию с указанным this и аргументами.
  • Function.prototype.bind — Создаёт копию функции с закреплённым this и, при желании, аргументами.
  • Spread syntax — Три точки раскрывают массив или объект на отдельные элементы.

В учебнике

  • this, call, apply и bind — Как в JavaScript определяется this, почему метод теряет контекст и как задать this вручную методами call, apply и bind.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.