Стрелочная функция не имеет собственного 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» неверен.