我正在编写一个错误事件处理程序来捕获错误并向服务器发出 ajax 调用以报告错误。问题是很多时候,我的代码看起来像这样:
function A() {
//lots of works to calculate SomeParameters; can bug
CalledVeryOften(SomeParameters);
}
function CalledVeryOften(SomeParameters) {
// a little bit of work
}
如果我在函数 A(或 B、C、D...)中捕获事件,太好了!但问题是,如果 window.onerror 事件在 CalledVeryOften 中触发,则可能是参数计算不正确。
在 CalledVeryOften 中有没有办法确定它是从哪个函数调用的?
谢谢。
最佳答案
可以通过已弃用的arguments.callee.caller.name
属性获取调用函数的名称MDN: arguments.callee
.
另一种方法是解析 new Error().stack
的值.
在 Chrome 中,您可以使用:
var stackTrace = {};
Error.captureStackTrace(stackTrace); // Get the stack trace
stackTrace = stackTrace.stack; // Formatted string
关于javascript:获取调用函数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9748498/