一尘不染

我可以获取JavaScript中当前正在运行的函数的名称吗?

javascript

是否有可能做到这一点:

myfile.js:
function foo() {
    alert(<my-function-name>);
    // pops-up "foo"
    // or even better: "myfile.js : foo"
}

我的堆栈中有Dojo和jQuery框架,因此,如果这两个框架都使它变得更容易,它们将可用。


阅读 283

收藏
2020-04-25

共1个答案

一尘不染

在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);
}
2020-04-25