> Можно ли забиндить контекст функции в JavaScript и как это сделать (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Сбер

Стек: JavaScript

> Пример ответа

Да, контекст функции в JavaScript можно забиндить, то есть явно указать, на какой объект будет ссылаться this внутри функции. Это делается с помощью метода bind(), который возвращает новую функцию с привязанным контекстом. Также существуют методы call() и apply(), которые вызывают функцию с заданным контекстом, но не создают новую функцию.

Пример с bind():

JAVASCRIPT
const obj = { name: 'Alice' };
function greet() {
console.log(`Hello, ${this.name}`);
}
const boundGreet = greet.bind(obj);
boundGreet(); // "Hello, Alice"

Пример с call() и apply():

JAVASCRIPT
greet.call(obj); // "Hello, Alice"
greet.apply(obj); // "Hello, Alice"

Кроме того, в стрелочных функциях контекст не биндится - this берётся из внешнего лексического окружения. Для привязки контекста в обработчиках событий или колбэках часто используют bind или замыкания.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью