Назад к вопросам
Middle
73
questionbank

В чем заключается разница между методами bind и call в JavaScript?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

bind создает новую функцию, в которой this контекст фиксирован. Она не вызывает оригинальную функцию немедленно. call вызывает оригинальную функцию немедленно, устанавливая this контекст и передавая аргументы по отдельности.

Пример:

const person = { name: 'Иван' };

function greet(greeting, punctuation) {
  return `${greeting}, ${this.name}${punctuation}`;
}

// Использование call - вызывает функцию сразу
console.log(greet.call(person, 'Привет', '!')); // Привет, Иван!

// Использование bind - создает новую функцию
const boundGreet = greet.bind(person, 'Здравствуй');
console.log(boundGreet('?')); // Здравствуй, Иван?
console.log(boundGreet('!')); // Здравствуй, Иван!