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

Вот пример:

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

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

Однако, если мы добавим this в качестве второго аргумента в оператор записи, мы увидим немного другую картину: enter image description here

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

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

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

...