Что такое 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.