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