Chrome调试器在箭头功能中显示了非显而易见的(不正确?)值

时间:2019-02-08 10:18:57

标签: arrow-functions chrome-debugging

这里是一个例子:

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

如果我们在带有控制台日志语句的行上放置一个断点,并在DevTools的this面板上检查Scope的值,我们可以看到: enter image description here

但是,如果我们在日志记录语句中添加this作为第二个参数,则会看到一些不同的图片: enter image description here

人们总是假设this是由箭头函数从外部词法环境中借用的。 由于我们以非严格模式运行代码,因此this函数的main的值应始终等于Window

也有类似的问题(this onethat one),但是它们都使用转译的代码来描述问题,而在我们的例子中是纯JavaScript。

因此,逻辑上的问题-这是DevTools的问题,还是设计使然?

0 个答案:

没有答案