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

Стрелочная функция не имеет собственного this: она использует this окружающего лексического контекста. Результат зависит от того, где функция создана.

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

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

Стрелочная функция не имеет собственного this: она использует this окружающего лексического контекста. Результат зависит от того, где функция создана.

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

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

Стрелочная функция не имеет собственного this: она использует this окружающего лексического контекста. Результат зависит от того, где функция создана.

Контролируемый пример:

function makeLogger() {
  return () => console.log(this);
}
const owner = { name: 'example' };
const log = makeLogger.call(owner);
log(); // объект owner
log.call({}); // тот же owner

call не меняет this уже созданной стрелки. На верхнем уровне модуля this обычно undefined, поэтому ответ «всегда window» неверен.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее