代码之家  ›  专栏  ›  技术社区  ›  PageYe

Chrome Dev工具:watch变量不可用(无法在闭合范围内检测)[重复]

  •  4
  • PageYe  · 技术社区  · 9 年前

    我在chrome中运行代码片段并观察变量。
    变量 a , b , c 都在闭包范围中声明,但是 不可用。 请说明为什么会发生这种情况?

    watch variable in chrome dev tool

    offcial Doc 没有说清楚。

    我假设chrome的watch表达式中的变量必须在局部范围内使用或在全局范围内声明,否则即使在闭包范围内声明也不可用。这个命题正确吗?

    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 回复  |  直到 9 年前
        1
  •  1
  •   Kayce Basques    9 年前

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

        2
  •  0
  •   Dmitry Karpenko    8 年前

    在我看来,这是一个合理的优化——为什么在运行时将未使用的变量包含到闭包中。

    我是说,他们

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

    推荐文章