Назад к вопросам
Middle
145
questionbank
Что такое методы call, apply и bind в JavaScript?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
call, apply и bind — это методы, доступные для всех функций в JavaScript. Они используются для управления контекстом выполнения функции (значением this).
- call: Вызывает функцию с заданным значением
thisи отдельными переданными аргументами.// Пример использования call function greet() { return "Привет, " + this.name + "!"; } const person = { name: "Иван" }; console.log(greet.call(person)); // Output: Привет, Иван! - apply: Вызывает функцию с заданным значением
thisи аргументами, переданными в виде массива или псевдомассива.// Пример использования apply function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Output: 18 - bind: Создает новую функцию, которая при вызове имеет заданное значение
this. Оригинальная функция при этом не вызывается сразу.// Пример использования bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Output: undefined (this указывает на глобальный объект) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Output: 42 (this привязан к module)
Основные отличия:
| Метод | Передача аргументов | Вызов функции | Возвращаемое значение |
|---|---|---|---|
| call | Раздельно (через запятую) | Сразу | Результат выполнения функции |
| apply | В виде массива или псевдомассива | Сразу | Результат выполнения функции |
| bind | Раздельно (через запятую) | Не сразу | Новая функция с привязанным this |