> Можно ли забиндить контекст функции в JavaScript и как это сделать (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Сбер
Стек: JavaScript
> Пример ответа
Да, контекст функции в JavaScript можно забиндить, то есть явно указать, на какой объект будет ссылаться this внутри функции. Это делается с помощью метода bind(), который возвращает новую функцию с привязанным контекстом. Также существуют методы call() и apply(), которые вызывают функцию с заданным контекстом, но не создают новую функцию.
Пример с bind():
JAVASCRIPTconst obj = { name: 'Alice' };function greet() {console.log(`Hello, ${this.name}`);}const boundGreet = greet.bind(obj);boundGreet(); // "Hello, Alice"
Пример с call() и apply():
JAVASCRIPTgreet.call(obj); // "Hello, Alice"greet.apply(obj); // "Hello, Alice"
Кроме того, в стрелочных функциях контекст не биндится - this берётся из внешнего лексического окружения. Для привязки контекста в обработчиках событий или колбэках часто используют bind или замыкания.
> Похожие задачи по frontend
Можно ли выполнять более приоритетные промисы кроме setTimeout и что это дает пользователю
Выполняются ли скрипты в порядке перечисления в документе и работает ли это с async
Как обратиться к объекту и пройти по цепочке прототипов в JavaScript
Какие ключи могут быть в объекте и в Map в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью