> Что такое bind в JavaScript и как им пользоваться для привязки контекста? (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, TYMY
Стек: JavaScript
> Пример ответа
bind - это метод функции в JavaScript, который создаёт новую функцию с фиксированным значением this (контекстом) и, опционально, предустановленными аргументами. Он не вызывает функцию сразу, а возвращает её копию с привязанным контекстом.
Как работает:
JAVASCRIPTconst obj = { name: 'Алиса' };function greet() {console.log(`Привет, ${this.name}`);}const boundGreet = greet.bind(obj);boundGreet(); // Привет, Алиса
Основные сценарии использования:
-
Привязка контекста в обработчиках событий - чтобы сохранить
thisпри передаче метода как колбэка:JAVASCRIPTclass Button {constructor(text) {this.text = text;this.handleClick = this.handleClick.bind(this);}handleClick() { console.log(this.text); }} -
Частичное применение (каррирование) - фиксация части аргументов:
JAVASCRIPTfunction multiply(a, b) { return a * b; }const double = multiply.bind(null, 2);double(5); // 10 -
Заимствование методов - использование метода одного объекта в контексте другого:
JAVASCRIPTconst arr = [1, 2, 3];const slice = Array.prototype.slice.bind(arr);slice(1); // [2, 3]
Важно: bind не изменяет исходную функцию, а создаёт новую. Если контекст уже привязан, повторный bind не переопределит его (исключение - стрелочные функции, у которых this фиксирован лексически).
> Похожие задачи по frontend
Как запустить код в консоли браузера
Какие способы передачи контекста исполнения функции существуют в JavaScript?
Является ли JavaScript однопоточным или многопоточным языком
Как организовать общение между двумя вкладками одного приложения в браузере?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью