PassFront
  1. PassFront
  2. База знаний
  3. Функции

Что такое apply в JavaScript?

Функции

`apply` — метод функции, который вызывает её с заданным `this` и аргументами, переданными массивом. Отличается от call только формой передачи аргументов.

Синтаксис

func.apply(thisArg, [arg1, arg2, ...]);
  • thisArg — значение this внутри функции.
  • Второй аргумент — массив (или array-like) аргументов.

Пример

function greet(greeting, punctuation) {
  return `${greeting}, ${this.name}${punctuation}`;
}

const user = { name: 'Ann' };
greet.apply(user, ['Привет', '!']); // 'Привет, Ann!'

apply против call

  • call — аргументы через запятую: func.call(obj, a, b).
  • apply — аргументы массивом: func.apply(obj, [a, b]).

Мнемоника: apply — array.

Классическое применение (до spread)

const nums = [5, 1, 8, 3];
Math.max.apply(null, nums); // 8

Сегодня чаще используют spread: Math.max(...nums), но apply встречается в legacy-коде и когда this нужно подменить.

Коротко для собеседования

apply вызывает функцию с указанным this и аргументами-массивом. Отличие от call — форма аргументов (массив против списка). Раньше применяли для передачи массива в функции вроде Math.max.

Другие вопросы раздела