javascript:获取调用函数的名称

标签 javascript

我正在编写一个错误事件处理程序来捕获错误并向服务器发出 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/

相关文章:

javascript - 单击按钮时 css 消失

javascript - getElementsByTagName () [0] 未定义

Javascript 动态附加到数组

javascript - 如何仅使用 jquery 一次随机化动画

javascript - 使用 --detectOpenHandles --forceExit 运行 jest 是否有副作用?

javascript - 最好使用哪种方法 - document.getElementById 或 document.forms[]?

javascript - 从外部链接每 5 秒更改一次文本

c# - 有什么解决方案可以在程序中使用不可猜测的链接吗?

javascript - 如何在 AngularJS 中发送 HTTP 请求 onbeforeunload?

javascript - 创建一个函数,将字符串格式化为始终在小数点后显示两位有效数字,而不使用方法