Встречается на собеседованиях • сегодня
В чем разница между call, apply и bind
call, apply и bind используются для управления контекстом (this) функции, но работают по-разному:
- call – вызывает функцию с указанным
thisи аргументами, переданными по отдельности:
js
func.call(context, arg1, arg2, ...);- apply – аналогичен
call, но аргументы передаются массивом:
js
func.apply(context, [arg1, arg2, ...]);- bind – создает новую функцию с привязанным
this, но не вызывает её сразу. Аргументы можно передать при вызове:
js
const boundFunc = func.bind(context, arg1, arg2);
boundFunc();Пример:
js
const user = { name: 'Alex' };
function greet(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`);
}
greet.call(user, 'Hello', '!'); // "Hello, Alex!"
greet.apply(user, ['Hi', '?']); // "Hi, Alex?"
const boundGreet = greet.bind(user);
boundGreet('Hey', '.'); // "Hey, Alex."Итог:
call/apply– вызывают функцию сразу.bind– возвращает новую функцию для отложенного вызова.- Разница между
callиapply– в способе передачи аргументов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы