Как вернуть контекст функции? Расскажи про call, apply, bind.

Это полезно для:

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

Что ответить на собеседовании

Function.prototype.bind создает новую функцию, которая при вызове будет иметь жестко заданный контекст (this) и, опционально, предопределенные аргументы, предшествующие любым аргументам, переданным новой функции при вызове.

Подробный разбор

Ответ с пояснениями

Function.prototype.bind создает новую функцию, которая при вызове будет иметь жестко заданный контекст (this) и, опционально, предопределенные аргументы, предшествующие любым аргументам, переданным новой функции при вызове.

Это полезно для:

  • сохранения контекста при передаче методов в качестве колбэков или обработчиков событий.
  • частичного применения (currying) функций.
// Пример сохранения контекста

const user = {
  name: 'Alice',
  greet: function() {
    console.log(`Привет, ${this.name}!`);
  }
};

const greetUser = user.greet;
greetUser(); // Привет, undefined! (контекст потерян)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Привет, Alice! (контекст сохранен)
// Пример частичного применения

function multiply(a, b) {
  return a * b;
}

const multiplyByTwo = multiply.bind(null, 2); // null в качестве контекста, так как он не нужен

console.log(multiplyByTwo(5)); // 10

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку