6

我正在寻找与__FUNCTION__JavaScript 中的 PHP 等效的东西,以允许我获取当前函数的名称。例如:

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

有没有办法在 JavaScript 中做到这一点?使用类似于魔术变量__FUNCTION__或任何其他解决方法?而且,如果目前没有办法实现这一目标,是否有计划

4

1 回答 1

3

您可能会通过object的callee属性获得对当前正在执行的函数的引用。请注意,ES5.1 严格模式已弃用它。arguments

name从中,您可以得到函数的(非标准)。请注意,这仅适用于函数声明和命名函数表达式(在 IE 中存在已知错误),但不适用于作为对象属性的匿名函数:

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

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

于 2012-10-10T17:40:40.627 回答