Встречается на собеседованиях • сегодня

Как явно задать функции контекст

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

  1. call() - вызывает функцию с указанным контекстом и аргументами через запятую:
js
function greet() {
  console.log(`Hello, ${this.name}`);
}
const person = {name: 'Alice'};
greet.call(person); // Hello, Alice
  1. apply() - аналогичен call, но аргументы передаются массивом:
js
function sum(a, b) {
  return a + b + this.c;
}
const obj = {c: 3};
sum.apply(obj, [1, 2]); // 6
  1. bind() - создает новую функцию с привязанным контекстом:
js
const boundFunc = greet.bind(person);
boundFunc(); // Hello, Alice

Различия:

  • call/apply вызывают функцию сразу
  • bind возвращает новую функцию с привязанным контекстом
  • call принимает аргументы списком, apply - массивом
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы