Отладчик Chrome показывает неочевидное (неправильное?) Значение для этого внутри функции стрелки

Вот пример:

function main () {
    return () => {
        console.log(42);
    };
}
main()();

Если мы поместим точку останова в строку с оператором консоли и проверим значение this на Scope На панели DevTools мы видим, что:

Тем не менее, если мы добавим this в качестве второго аргумента оператора logging мы можем увидеть немного другую картину:

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

Есть похожие вопросы (и тот, и другой), но оба они описывают проблему с переданным кодом, в то время как в нашем случае это чистый JavaScript.

Отсюда логичный вопрос - это проблема с DevTools или она задумана?

0 ответов

Другие вопросы по тегам