Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript回溯_Javascript_Reflection_Callstack_Backtrace - Fatal编程技术网

Javascript回溯

Javascript回溯,javascript,reflection,callstack,backtrace,Javascript,Reflection,Callstack,Backtrace,如何在Javascript中获取回溯 理想功能: 输入函数名,或匿名函数的某个有意义的标识符 每个级别的参数列表 行号 这可以在标准ECMAScript中完成吗 如果没有,可以用常见的web浏览器方言进行吗 谢谢 编辑-- 谢谢你的建议 我的方言不支持参数。调用者或参数。被调用者 我可以这样做: try { let x = null; x .foo (); } catch (e) { debug (dump (e.stack)); } 它以字符串的形式向我提

如何在Javascript中获取回溯

理想功能:

  • 输入函数名,或匿名函数的某个有意义的标识符
  • 每个级别的参数列表
  • 行号
这可以在标准ECMAScript中完成吗

如果没有,可以用常见的web浏览器方言进行吗

谢谢

编辑-- 谢谢你的建议

我的方言不支持
参数。调用者
参数。被调用者

我可以这样做:

try {
    let x = null;
    x .foo ();
}
catch (e) {
        debug (dump (e.stack));
}
它以字符串的形式向我提供信息,这对我来说是一个很好的概览,但是如果能步行
e.stack
,那将是一个很大的帮助。它有标准表格吗


再次感谢。

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

(function () { console.log(new Error().stack); })();
正如下面的评论所建议的,读者应该更喜欢: log(新错误().stack)

这个库:在任何地方都可以使用,而不仅仅是错误

例如:

StackTrace.get()
    .then(stack => { console.log(stack) })
    .catch(err => { console.log(err) });
另一种方法是使用
console.trace()


来源:

获取strack跟踪的最佳方法是使用基于浏览器的调试器。您的方言是什么?什么是
dump
?它是一种专有方言,似乎大部分是完整的,有一些扩展。为什么要使用额外的函数包装器?你不能只使用
console.log(newerror().stack)?它对我起作用了。我不认为有任何理由使用包装器函数。我喜欢干净的全局范围。因此,我添加了一个包装器。添加包装器函数显然会在堆栈顶部添加一个额外的函数(毫无意义?),使您关心的代码降低一步。我建议读者不要这样做,idk,如果海报有这样的理由,所以我不会改变答案。