Встречается на собеседованиях • сегодня

В чем разница между bind, call и apply

Все три метода используются для привязки контекста this к функции, но различаются способом передачи аргументов:

  • bind создает новую функцию с привязанным контекстом, не вызывая её сразу. Аргументы можно передавать при привязке или при вызове:
js
const boundFunc = func.bind(context, arg1, arg2);
boundFunc(arg3);
  • call вызывает функцию сразу с привязанным контекстом, принимая аргументы через запятую:
js
func.call(context, arg1, arg2, arg3);
  • apply аналогичен call, но принимает аргументы в виде массива:
js
func.apply(context, [arg1, arg2, arg3]);

Основные отличия:

  1. bind возвращает функцию, call/apply вызывают её сразу
  2. call принимает аргументы списком, apply - массивом
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы