Javascript 中是否有 Function.caller 的生产安全版本?

DNg*_*yen 5 javascript strict backtrace

有没有办法返回调用当前函数的函数?Function.caller仅适用于非严格模式应用程序。

我希望能够在生产环境中使用此功能,因此我需要打开严格模式。

预期返回:函数本身或函数名称。

function a() {
 b()
}

function b() {
 console.log(b.caller)
}
Run Code Online (Sandbox Code Playgroud)

Function.caller在严格模式下使用时会抛出错误:

未捕获的 TypeError: 'caller'、'callee' 和 'arguments' 属性可能无法在严格模式函数或调用它们的参数对象上访问

Cod*_*iac 7

一种可能的方法是使用Console.trace

function a() {
 b()
}

function b() {
 console.trace()
}

a()
Run Code Online (Sandbox Code Playgroud)

检查浏览器控制台以查看输出

  • 当我想将数据用于其他目的而不是在控制台中显示时该怎么办?(既然你说“一种可能的方法”,我想还有其他方法吗?...) (2认同)