call и apply вызывают функцию немедленно, а bind создаёт новую; все три работают с контекстом обычной функции.
Для чего используются методы bind, call и apply и в чём их различия?
call и apply вызывают функцию немедленно, а bind создаёт новую; все три работают с контекстом обычной функции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
call и apply вызывают функцию немедленно, а bind создаёт новую; все три работают с контекстом обычной функции.
Пример: sum.call(ctx, 1, 2) и sum.apply(ctx, [1, 2]) отличаются формой передачи аргументов. sum.bind(ctx, 1) возвращает функцию с сохранёнными this и первым аргументом. Стрелочную функцию нельзя перепривязать таким способом, потому что её this лексический.