可以有人给我解释一下为什么Chrome的Dev Tools (可能其他浏览器也是这样的,我没有去检查)看不到沿着链条的变量吗?
所以如果我有像这样的东西:
在断点处,Chrome 将会看到
所以如果我有像这样的东西:
function wholeKit(kaboodle) {
kaboodle.forEach((k)=> {
k.parts.map((p)=> {
// console.log(kaboodle, k)
debugger;
})
})
}
在断点处,Chrome 将会看到
p
的值,但不会看到 kaboodle
和 k
。它们将变成 undefined
。但是如果我取消注释断点上面的那一行,这些变量神奇地就不再是 undefined 了。为什么呢?
对于那些无法理解 ES6 的人来说,这是 jsbin。
更新:显然这就是浏览器垃圾回收器的工��方式,那些未被使用的变量被清除了。现在我很好奇,是否有一种方法可以调整垃圾回收器,以便在 DevTools 打开时使用?