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

Javascript中是否有Function.caller的生产安全版本?,javascript,strict,backtrace,Javascript,Strict,Backtrace,是否有方法返回调用当前函数的函数?仅适用于非严格模式应用 我希望能够在生产环境中使用此功能,因此需要启用严格模式 预期返回:函数本身或函数名称 function a() { b() } function b() { console.log(b.caller) } 在严格模式下使用时将引发错误: 未捕获的TypeError:“调用方”、“被调用方”和“参数”属性不能在严格模式函数或用于调用它们的参数对象上访问一种可能的方法是使用 函数a(){ b() } 函数b(){ console.t

是否有方法返回调用当前函数的函数?仅适用于非严格模式应用

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

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

function a() {
 b()
}

function b() {
 console.log(b.caller)
}
在严格模式下使用时将引发错误:

未捕获的TypeError:“调用方”、“被调用方”和“参数”属性不能在严格模式函数或用于调用它们的参数对象上访问

一种可能的方法是使用

函数a(){
b()
}
函数b(){
console.trace()
}

a()
在JavaScript中似乎没有一种灵活的本机实现方法

当使用非标准溶液可能是可以接受的时,您可以查看属性。您可以在中使用该方法,正如在注释中所建议的那样


< >对于一个更强大的生产使用解决方案,我认为你应该考虑使用一个外部包(类似)。< / P>检查下面的答案:出于好奇,你用它来做什么?@罗森建议的答案是非。standard@CodeManiac那么你知道这方面的“标准”解决方案吗?不必每次都在参数中传递调用方名称?您应该使用连字符编写“生产安全版本”。这是复合形容词(组合在一起描述另一个单词的单词)的规则。当我想将数据用于其他目的而不是在控制台中显示数据时,该怎么办?(既然你说的是“一种可能的方式”,我想还有其他方式吗?…)