相关疑难解决方法(0)

以编程方式访问功能位置

是否可以在代码中访问["[[FunctionLocation]]"]google chrome开发人员工具在使用控制台日志功能时显示的属性?

google-chrome google-chrome-devtools console.log

19
推荐指数
2
解决办法
3528
查看次数

通过 Chrome DevTools API 或面板以编程方式访问 [[Scopes]] (闭包变量)?(不在断点处)

2014 年, JS 代码无法从闭包外部访问闭包内部的变量。从那时起,Chrome 的内部结构已更改为使用[[Scopes]]而不是Closure.

\n\n

Chrome DevTools 现在(2018 年)可以以[[Scopes]]编程方式读取吗?如果是这样,是否有现有的 DevTools 扩展可以做到这一点?

\n\n

用例:检查使用 RequireJS 加载的 UMD 模块内的变量。我知道我可以使用面板在断点或语句处执行此操作,但希望即使不在断点处也能执行此操作。debuggerScopes

\n\n

编辑截至 2017 年,无法访问[[FunctionLocation]],但我不知道[[Scopes]]

\n\n

尝试

\n\n

我调查了以下内容但没有成功(模块工厂函数名称main):

\n\n
    \n
  • 此评论提到了console.dir(),但没有以编程方式访问 的输出console.dir()。我可以console.dir({main})手动使用然后扩展结果,但不能以编程方式。
  • \n
  • 从 DevTools 控制台,我可以使用inspect({function})per this。这让我更接近,但不是[[Scopes]]

    \n\n
    > var x = inspect({main})\n> x.main.name\n\xe2\x86\x90 "main"\n> x.main[Symbol(\'Scopes\')]\n\xe2\x86\x90 undefined\n> x.main[\'[[Scopes]]\']\n\xe2\x86\x90 …
    Run Code Online (Sandbox Code Playgroud)

javascript closures google-chrome inspect google-chrome-devtools

12
推荐指数
0
解决办法
3045
查看次数