Sobes.tech
Назад к вопросам
Middle
2

Чем отличаются call, apply и bind?

Компании, где спрашивали
ТранснефтьТранснефть

Ответ от нейросети

sobes.tech AI

call, apply и bind — методы для управления контекстом this в JavaScript.

  • call вызывает функцию с указанным контекстом и аргументами, переданными по отдельности.
function greet(greeting) {
  console.log(greeting + ', ' + this.name);
}
const person = { name: 'Иван' };
greet.call(person, 'Привет'); // Привет, Иван
  • apply похож на call, но аргументы передаются в виде массива.
greet.apply(person, ['Здравствуйте']); // Здравствуйте, Иван
  • bind не вызывает функцию сразу, а возвращает новую функцию с привязанным контекстом и, опционально, аргументами.
const greetPerson = greet.bind(person, 'Добрый день');
greetPerson(); // Добрый день, Иван

Таким образом, call и apply вызывают функцию сразу, а bind создаёт новую функцию с фиксированным контекстом для последующего вызова.