有没有办法返回调用当前函数的函数?Function.caller只适用于非严格模式的应用程序。
我希望能够在生产环境中使用此功能,因此我需要打开严格模式。
预期返回值:函数本身或函数名称。
function a() {
b()
}
function b() {
console.log(b.caller)
}在严格模式下使用时,Function.caller会抛出错误:
未捕获调用者:不能在严格模式函数或用于调用它们的参数对象上访问“TypeError”、“callee”和“arguments”属性
发布于 2019-08-28 13:23:32
发布于 2019-08-28 15:44:30
在JavaScript中,似乎没有一种灵活的方式来实现这一点。
当使用非标准解决方案可能是可接受的时,您可以查看Error.prototype.stack属性。你可以在p.s.w.g的answer中使用这个方法,就像Royson在评论中建议的那样。
对于更健壮的生产应用解决方案,我认为您应该考虑使用外部包(如stacktrace.js)。
https://stackoverflow.com/questions/57685388
复制相似问题