可能重复:
How can I get the name of function inside a JavaScript function?
标题应该清楚。
是否可以从函数中确定该函数的名称?
基本上,我正在为一些函数添加一些调试代码,我希望能够在每个函数中添加以下行:
if (global_debugOn) alert("Processing function " + function-name);
如何获得'function-name'?
是的,显然我可以简单地输入函数名称(毕竟我输入整个alert
位),但这很麻烦,特别是如果有一个很好的简单方法来检索它动态。另外,随着功能名称在开发过程中发生变化,我想让它保持最新......
我希望arguments
属性可能会保留这个(例如arguments[0]
,就像在C中一样),但我无法让它工作。我甚至不确定arguments
是否有效。
谢谢!
罗
答案 0 :(得分:2)
最接近的是arguments.callee
,它实际上返回函数本身,而不是名称。
唯一的另一件事是arguments.caller
,它返回一个字符串,但这只是在Mozilla中,甚至不再支持它。
最后一个选项是调用arguments.callee.toString()
..但这将返回函数声明,而不仅仅是名称。
答案 1 :(得分:0)
你可以说arguments.callee.toString(),名字可能在那里。如果你匿名声明函数,即var f = function(){}而不是函数f(){}
答案 2 :(得分:0)
function someFunc() {
var ownName = arguments.callee.toString();
ownName = ownName.substr('function '.length);
ownName = ownName.substr(0, ownName.indexOf('('));
alert(ownName);
}
someFunc();