寻求arguments.callee.name的替代方法以在console.log中使用

时间:2017-05-27 21:34:43

标签: javascript

'use strict';
function foobar(){
    console.log(arguments.callee.name);  // foobar
}

我听说这曾经奏效,但现在已被弃用了。对于其他情况似乎还有其他替代方案,我已经看到很多使用function.name的引用,但必须输入foobar.name才能达到目的。在一个类中,我可以使用this.constructor.name并获取该类的名称。我正在为函数的名称寻找类似的东西。

为什么这不是任何现有问题的重复,因为ES6:对一个类似问题的一个答案谈到使用命名函数,但这是一个命名函数。对于另一个问题,答案是使用function.name - 但这个问题基本上是询问是否有办法在不知道名称的情况下.log名称。对于另一个问题,答案是使用像()=> Function.caller.name这样的东西,但这是非标准的。

1 个答案:

答案 0 :(得分:0)

如果你正在使用ES6,该功能现在有一个属性'名称'

使用您的示例:

function foobar(){ console.log(foobar.name); // foobar }