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