Назад к вопросам
Junior
120
questionbank

В чем различия между функциями call, bind и apply в JavaScript?

Sobes Copilot

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

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

sobes.tech AI

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

// Пример использования call и apply
const obj = { name: 'Alice' };

function greet(greeting) {
  console.log(`${greeting}, ${this.name}!`);
}

greet.call(obj, 'Привет'); // Привет, Alice!
greet.apply(obj, ['Здравствуйте']); // Здравствуйте, Alice!

// Пример использования bind
const boundGreet = greet.bind(obj, 'Привет');
boundGreet(); // Привет, Alice!
Метод Вызов Аргументы Возвращаемое значение
call Немедленно Перечисляются по отдельности Результат выполнения функции
apply Немедленно Передаются в массиве Результат выполнения функции
bind Создает новую функцию Можно передать при вызове bind или при вызове возвращенной функции Новая функция с привязанным контекстом