PassFront
  1. PassFront
  2. База знаний
  3. Функции

Для чего нужен bind в JavaScript?

Функции

`bind` в JavaScript нужен, чтобы создать новую функцию с навсегда привязанным `this` (и, при необходимости, предустановленными аргументами). В отличие от call/apply, он не вызывает функцию сразу.

Основное назначение — сохранить контекст

Метод, переданный как колбэк, теряет this. bind это исправляет:

const user = {
  name: 'Ann',
  greet() { return `Привет, ${this.name}`; },
};

const greet = user.greet.bind(user);
setTimeout(greet, 100); // 'Привет, Ann' — this сохранён

Без bind внутри setTimeout this был бы потерян.

Частичное применение

bind может зафиксировать часть аргументов:

function multiply(a, b) { return a * b; }
const double = multiply.bind(null, 2);
double(5); // 10

bind против call/apply

  • call/apply — задают this и вызывают сразу.
  • bind — задаёт this и возвращает новую функцию для вызова позже.

Где применяют

  • Колбэки, обработчики событий (сохранить контекст).
  • Передача методов классов в JSX (или заменяют стрелками/полями класса).

Коротко для собеседования

bind создаёт новую функцию с зафиксированным this и опционально частью аргументов, но не вызывает её сразу. Нужен, чтобы не терять контекст в колбэках/обработчиках и для частичного применения. Отличается от call/apply, которые вызывают немедленно.

Другие вопросы раздела