如何查看JavaScript内部属性[[Scopes]]?控制台找不到该属性
解决Chrome控制台无法查看函数[[Scopes]]/闭包的问题
针对你遇到的情况,按以下步骤排查:
开启函数作用域显示设置
点击Chrome控制台右上角的三个点 → 选择「Settings」,在「Console」面板里,勾选Show function scope选项。这个开关控制是否展示函数的作用域链相关属性。切换到详细视图
执行console.dir(booker)后,在输出的函数对象右上角,把默认的「Compact」视图切换为「Detailed」视图。紧凑视图会默认隐藏[[Scopes]]这类底层属性。触发一次函数调用
尽管你的代码逻辑已经形成闭包,但Chrome有时会在函数未被调用前延迟显示闭包信息。先执行一次booker(),再重新运行console.dir(booker),闭包相关的作用域信息应该就会出现。
你的代码示例:
const secureBooking = function () { let passengerCount = 0; return function () { passengerCount++; console.log(`${passengerCount} passengers`); }; }; const booker = secureBooking(); console.dir(booker);
内容的提问来源于stack exchange,提问作者Petri Heva
相关产品推荐
相关产品推荐

