Javascript回溯

spr*_*aff 9 javascript reflection callstack backtrace

如何在Javascript中获得回溯?

理想特色:

  • 输入函数名称,或匿名函数的一些有意义的标识符,
  • 每个级别的参数列表,
  • 行号.

这可以在标准的ECMAScript中完成吗?

如果没有,可以在常见的网络浏览器方言中完成吗?

谢谢.

编辑 -

谢谢你的建议.

我的方言不支持arguments.callerarguments.callee.

我可以做这个:

try {
    let x = null;
    x .foo ();
}
catch (e) {
        debug (dump (e.stack));
}
Run Code Online (Sandbox Code Playgroud)

这让我得到了一个字符串的信息,一目了然,但走路会很有帮助e.stack.它有标准表格吗?

再次感谢.

lin*_*ian 26

在我的调试经验中,我总是使用它

(function () { console.log(new Error().stack); })();
Run Code Online (Sandbox Code Playgroud)

  • 为什么要使用额外的功能包装器?你不能只使用`console.log(new Error()。stack);`吗?它为我工作。 (2认同)

Laf*_*ziq 10

另一种方法是使用 console.trace();

来源:https://developer.mozilla.org/en-US/docs/Web/API/Console/trace