我正在寻找与__FUNCTION__
JavaScript 中的 PHP 等效的东西,以允许我获取当前函数的名称。例如:
function foo(){
console.log(__FUNCTION__); // "foo" would be logged to the console
}
有没有办法在 JavaScript 中做到这一点?使用类似于魔术变量__FUNCTION__
或任何其他解决方法?而且,如果目前没有办法实现这一目标,是否有计划?
我正在寻找与__FUNCTION__
JavaScript 中的 PHP 等效的东西,以允许我获取当前函数的名称。例如:
function foo(){
console.log(__FUNCTION__); // "foo" would be logged to the console
}
有没有办法在 JavaScript 中做到这一点?使用类似于魔术变量__FUNCTION__
或任何其他解决方法?而且,如果目前没有办法实现这一目标,是否有计划?
您可能会通过object的callee
属性获得对当前正在执行的函数的引用。请注意,ES5.1 严格模式已弃用它。arguments
name
从中,您可以得到函数的(非标准)。请注意,这仅适用于函数声明和命名函数表达式(在 IE 中存在已知错误),但不适用于作为对象属性的匿名函数:
var myObj = {
method: function() { // unnamed!
return arguments.callee.name || "anonymous";
}
};
myObj.method(); // "anonymous"
我自己在调试/错误语句中使用静态字符串,在函数的整个命名空间前面添加以便在代码中轻松找到它。