Sobes.tech
Back to questions
Middle
1

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

Companies where asked
ТранснефтьТранснефть

Answer from AI

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 создаёт новую функцию с фиксированным контекстом для последующего вызова.