> Что такое bind в JavaScript и как им пользоваться для привязки контекста? (JavaScript)

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

Компании: Иннотех, TYMY

Стек: JavaScript

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

bind - это метод функции в JavaScript, который создаёт новую функцию с фиксированным значением this (контекстом) и, опционально, предустановленными аргументами. Он не вызывает функцию сразу, а возвращает её копию с привязанным контекстом.

Как работает:

JAVASCRIPT
const obj = { name: 'Алиса' };
function greet() {
console.log(`Привет, ${this.name}`);
}
const boundGreet = greet.bind(obj);
boundGreet(); // Привет, Алиса

Основные сценарии использования:

  1. Привязка контекста в обработчиках событий - чтобы сохранить this при передаче метода как колбэка:

    JAVASCRIPT
    class Button {
    constructor(text) {
    this.text = text;
    this.handleClick = this.handleClick.bind(this);
    }
    handleClick() { console.log(this.text); }
    }
  2. Частичное применение (каррирование) - фиксация части аргументов:

    JAVASCRIPT
    function multiply(a, b) { return a * b; }
    const double = multiply.bind(null, 2);
    double(5); // 10
  3. Заимствование методов - использование метода одного объекта в контексте другого:

    JAVASCRIPT
    const arr = [1, 2, 3];
    const slice = Array.prototype.slice.bind(arr);
    slice(1); // [2, 3]

Важно: bind не изменяет исходную функцию, а создаёт новую. Если контекст уже привязан, повторный bind не переопределит его (исключение - стрелочные функции, у которых this фиксирован лексически).

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

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