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

В чем разница между bind и apply в JavaScript

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

  • bind создает новую функцию с привязанным контекстом и аргументами (если они переданы), но не вызывает её сразу. Аргументы передаются через запятую.
javascript
function greet(greeting, name) {
  return `${greeting}, ${name}! I'm ${this.title}`;
}

const user = { title: 'Admin' };
const boundGreet = greet.bind(user, 'Hello');
boundGreet('Alice'); // "Hello, Alice! I'm Admin"
  • apply сразу вызывает функцию с привязанным контекстом, принимая аргументы в виде массива (или array-like объекта).
javascript
greet.apply(user, ['Hi', 'Bob']); // "Hi, Bob! I'm Admin"

Ключевые отличия:

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

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

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

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