Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: bind, call

В чем разница между методами bind, call и apply в JavaScript?

Этот вопрос проверяет знания о контексте вызова функций в JavaScript, а также умение правильно использовать методы для работы с контекстом.

Короткий ответ

Методы bind, call и apply позволяют изменять контекст выполнения функции:

  1. bind создает новую функцию с привязанным контекстом.

  2. call вызывает функцию немедленно, передавая ей контекст и аргументы.

  3. apply похож на call, но аргументы передаются в виде массива.

Длинный ответ

В JavaScript контекст исполнения функции — это объект, на который ссылается ключевое слово this. Методы bind, call и apply помогают управлять этим контекстом:

  1. bind:

    • Метод bind создает новую функцию, которая при вызове всегда будет использовать заданный контекст. Это удобно, если нужно передать функцию с определённым контекстом.

    • Пример:

      function greet() {
        console.log(`Hello, ${this.name}`);
      }
      const person = { name: 'Alice' };
      const greetPerson = greet.bind(person);
      greetPerson();  // "Hello, Alice"
      
  2. call:

    • Метод call вызывает функцию немедленно с переданным контекстом и аргументами. Это позволяет вызвать функцию с произвольным контекстом.

    • Пример:

      function greet(age) {
        console.log(`${this.name} is ${age} years old`);
      }
      const person = { name: 'Bob' };
      greet.call(person, 30);  // "Bob is 30 years old"
      
  3. apply:

    • Метод apply работает аналогично call, но аргументы передаются в виде массива.

    • Пример:

      function sum(a, b) {
        console.log(a + b);
      }
      sum.apply(null, [3, 4]);  // 7
      

Вывод:
Методы bind, call и apply важны для управления контекстом в JavaScript. Они позволяют вызывать функции с нужным объектом, что особенно полезно при работе с асинхронным кодом и событиями.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#bind

#call

Подпишись на React Developer в телеграм