Проверяет понимание способов явного задания контекста выполнения функции в JavaScript с помощью методов call, apply и bind.
В JavaScript контекст выполнения функции определяется значением ключевого слова this. По умолчанию this зависит от того, как вызвана функция: в глобальном контексте это window (в браузере), у метода объекта — сам объект, у конструктора — новый экземпляр. Однако часто требуется явно задать контекст, чтобы функция работала с нужным объектом.
Существует три основных метода: call, apply и bind. Все они доступны у любой функции.
const obj = { name: 'Alice' };
function greet(greeting) {
console.log(greeting + ', ' + this.name);
}
greet.call(obj, 'Hello'); // Hello, Alice
greet.apply(obj, ['Hi']); // Hi, Alice
const boundGreet = greet.bind(obj);
boundGreet('Hey'); // Hey, AliceЯвное задание контекста часто используется при заимствовании методов (например, Array.prototype.slice.call(arguments)), в обработчиках событий для сохранения контекста, а также в функциональном программировании для создания частично применённых функций.
Вывод: Используйте call и apply для немедленного вызова с новым контекстом, а bind — когда нужно создать функцию с фиксированным контекстом для последующего использования. Это основа работы с this в JavaScript.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию