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

Как переопределить контекст в JS

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

  1. call() - вызывает функцию с указанным контекстом и аргументами через запятую:
js
func.call(context, arg1, arg2);
  1. apply() - аналогичен call, но принимает аргументы в виде массива:
js
func.apply(context, [arg1, arg2]);
  1. bind() - создает новую функцию с привязанным контекстом:
js
const boundFunc = func.bind(context);
boundFunc(arg1, arg2);

Пример:

js
const user = { name: 'John' };

function greet() {
  console.log(`Hello, ${this.name}!`);
}

greet.call(user); // Hello, John!

Также контекст можно переопределить при использовании стрелочных функций, но они не имеют своего this и всегда берут его из внешнего окружения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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