Ответ
Метод apply() — это встроенный метод функции, который позволяет вызвать её с заданным значением this и аргументами, переданными в виде массива (или массивоподобного объекта). Это ключевой инструмент для управления контекстом выполнения.
Основное отличие от call(): call() принимает список аргументов, а apply() — массив аргументов.
Пример использования:
function introduce(role, project) {
console.log(`Меня зовут ${this.name}, я ${role} в проекте ${project}.`);
}
const developer = { name: 'Анна' };
// Вызываем функцию introduce, устанавливая developer как контекст (this)
// и передаём аргументы ['бэкенд-разработчик', 'API Gateway'] как массив.
introduce.apply(developer, ['бэкенд-разработчик', 'API Gateway']);
// Вывод: Меня зовут Анна, я бэкенд-разработчик в проекте API Gateway.
Технические детали:
- Первый аргумент: Значение, которое станет
thisвнутри вызываемой функции. Если передатьnullилиundefined, в нестрогом режимеthisбудет ссылаться на глобальный объект (в браузере —window, в Node.js —global). - Второй аргумент: Массив (или объект с
length, напримерarguments), элементы которого становятся аргументами функции. - Практическое применение в Node.js: Исторически
apply()был полезен для вызова функций с переменным числом аргументов или для передачи массива данных. С появлением оператора расширения (...) его использование сократилось, но понимание метода важно для работы с унаследованным кодом и для низкоуровневых операций с функциями.