我可以在JavaScript中获取当前正在运行的函数的名称吗?
2022-08-30 01:00:22
是否可以这样做:
myfile.js:
function foo() {
alert(<my-function-name>);
// pops-up "foo"
// or even better: "myfile.js : foo"
}
我的堆栈中有 Dojo 和 jQuery 框架,所以如果其中任何一个都使它更容易,它们就可用。
是否可以这样做:
myfile.js:
function foo() {
alert(<my-function-name>);
// pops-up "foo"
// or even better: "myfile.js : foo"
}
我的堆栈中有 Dojo 和 jQuery 框架,所以如果其中任何一个都使它更容易,它们就可用。
在 ES5 及更高版本中,无法访问该信息。
在较旧版本的 JS 中,您可以使用 .arguments.callee
您可能必须解析出名称,因为它可能包含一些额外的垃圾。但是,在某些实现中,您可以使用 简单地获取名称。arguments.callee.name
解析:
function DisplayMyName()
{
var myName = arguments.callee.toString();
myName = myName.substr('function '.length);
myName = myName.substr(0, myName.indexOf('('));
alert(myName);
}
对于非匿名函数
function foo()
{
alert(arguments.callee.name)
}
但是,如果是错误处理程序,结果将是错误处理程序函数的名称,不是吗?