如何在Javascript中获得回溯?
理想功能:
可以在标准的ECMAScript中完成吗?
如果没有,是否可以在常见的网络浏览器方言中完成?
感谢。
感谢您的建议。
我的方言不支持arguments.caller
或arguments.callee
。
我可以这样做:
try {
let x = null;
x .foo ();
}
catch (e) {
debug (dump (e.stack));
}
以字符串形式获取信息,一目了然,但步行e.stack
会很有帮助。它有标准表格吗?
再次感谢。
答案 0 :(得分:23)
在我的调试经验中,我总是使用这个
(function () { console.log(new Error().stack); })();
答案 1 :(得分:4)
也许这可能对你有所帮助,但是还没有使用过它:
此链接不再有效:kallewoof.com/2006/03/15/precompiling-javascript-functions /
也看看这个:
答案 2 :(得分:2)
另一种方法是使用
console.trace();
来源:https://developer.mozilla.org/en-US/docs/Web/API/Console/trace
答案 3 :(得分:1)
此lib:stacktrace-js适用于任何地方,不仅有错误。
示例:
StackTrace.get()
.then(stack => { console.log(stack) })
.catch(err => { console.log(err) });
答案 4 :(得分:0)