Вот пример:
function main () {
return () => {
console.log(42);
};
}
main()();
Если мы поместим точку останова в строку с оператором журнала консоли и проверим значение this
на панели Scope
в DevTools, мы увидим, что:
Однако, если мы добавим this
в качестве второго аргумента в оператор записи, мы увидим немного другую картину:
Всегда предполагается, что this
заимствована функцией стрелки из внешней лексической среды.Поскольку мы запускаем код в нестрогом режиме, значение для this
для функции main
всегда должно быть равно Window
.
Есть похожие вопросы ( этот и , что один ), но оба они описывают проблему с переданным кодом, в то время как в нашем случае это чистый JavaScript.
Отсюда возникает логичный вопрос - это проблема с DevTools илипо дизайну?