我正在调查该机构的工作情况let
块作用域在 JavaScript 中,特别是浏览器的调试视图如何显示信息
Using let
在一个for
循环创建一个块作用域,其中回调function timeoutHandler()
可以访问,一切都很好
In Chrome 开发工具,[[Scopes]] 如下所示:
In 火狐开发者工具,列出了一个额外的块作用域,其中有timeoutHandler:timeoutHandler()
因为它是财产。我只希望看到块作用域j:1
这个额外的块指的是什么?
只是想知道,因为我期望的词法范围显示在 Chrome 调试中,但在 Firefox 调试中却没有显示
这个额外的块有什么用timeoutHandler
指的是?
似乎显示包裹在你周围的不可变绑定命名函数表达式 https://stackoverflow.com/q/30547514/1048572。函数表达式实际上被解释为就像您的代码一样
'use strict';
for (var i = 1; i <= 2; i++) {
let j = i;
setTimeout( {
const timeoutHandler = function() {
console.log(j);
debugger;
};
timeoutHandler
}, 1000);
}
(好吧,调用表达式内的这个块作用域显然在语法上不合法,但我希望你能明白意思)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)