Chrome开发工具:监视变量不可用(无法在关闭范围内检测到)

时间:2017-09-05 07:11:31

标签: javascript google-chrome debugging google-chrome-devtools watch

我在chrome中运行片段并观察变量 然而,令我困惑的是: 变量abc都在闭包范围内声明,但ab不可用。 请说清楚为什么会这样?

watch variable in chrome dev tool

offcial Doc并没有明确说明。

我做了一个假设:“chrome的表达式中的变量必须在本地范围内使用,或者在全局范围内声明,否则即使它有,它也不可用已在封闭范围内宣布“。这个命题是否正确?

Chrome版本:60.0.3

以下是我要测试的代码:

var globalV = 123;
;(function(){
var a = function(){}
var b = function(){a()}
var c = function(){b()}
var d = function(){
    debugger
    c()
  }
d()
})()

2 个答案:

答案 0 :(得分:2)

看起来可能是个错误。我创建了一个问题,以便DevTools团队中的某个人会查看它:https://crbug.com/762265

答案 1 :(得分:0)

对我来说,它看起来像是一个合理的优化 - 为什么在运行时将未使用的变量包含在闭包中。

我的意思是,它们可以包含在内,但解释器/编译器只包含已使用的 - 并且调试器使用相同的原理。

例如,在C#(.NET Core 2.0)中,它的工作方式相同: enter image description here