在JavaScript中是否有与PHP的“__FUNCTION__”相同的东西?

时间:2012-10-10 16:45:23

标签: javascript

我在JavaScript中寻找与PHP的__FUNCTION__相当的东西,以便让我获取当前函数的名称。例如:

function foo(){
    console.log(__FUNCTION__); // "foo" would be logged to the console
}

有没有办法在JavaScript中执行此操作?使用类似于__FUNCTION__的魔术变量或任何其他解决方法?而且,如果目前没有办法实现这一目标,那么计划吗?

1 个答案:

答案 0 :(得分:3)

您可以通过callee propertyarguments object获取对当前正在执行的函数的引用。请注意,它已被ES5.1严格模式弃用。

由此,您可以获得(非标准)name of the function。请注意,这仅适用于函数声明和named function expressions(IE中已知的错误),但不适用于匿名函数作为对象属性:

var myObj = {
    method: function() { // unnamed!
        return arguments.callee.name || "anonymous";
    }
};
myObj.method(); // "anonymous"

我自己在调试/错误语句中使用静态字符串,在函数的整个命名空间前面添加,以便在代码中轻松找到它。