0

调试时,调试器(例如 firebug、chrome 的开发工具或 node.js 的调试基础设施)具有有关整个堆栈的信息,包括变量值、被调用的函数等。我很想知道是否可以访问这些信息通过任何脚本/进程以编程方式。我特别想知道它是否可以通过自己调试的脚本/进程来完成。

想法?

4

1 回答 1

0

Javascript 已经提供了大部分此类信息,但建议不要使用其中的很多信息(因为它几乎扼杀了 V8 和其他引擎可以对您的代码执行的所有优化)。

堆:new Error().stack

变量:只需读取值?(如果您不知道哪些变量已附加到您的范围,您甚至可以做一些事情Object.keys(this)。[尽管我知道,无法自动访问闭包变量])

功能:Function.callerarguments.callee提供此信息。

同样,所有这些都会影响您的代码性能,因此我会尽可能避免这样做。

于 2013-09-30T17:41:55.023 回答