Function.prototype.apply
Вызывает функцию с указанным this и массивом аргументов.
Доступно с: ES3
Синтаксис
fn.apply(thisArg, argsArray)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| thisArg | any | Значение this при вызове. |
| argsArray | Array | Массив аргументов. |
Возвращаемое значение
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.