如何在调用时获取函数名称?

时间:2014-07-24 22:46:11

标签: javascript function

我不确定这是不是一个好主意,但是我希望能够在调用函数时从其中获取函数的名称。我在下面写的测试代码似乎有用,因为它不会导致名称冲突,但我不能先知道它的功能名称。

function And(){
    return "test";
};
var X = {
    And:  function And(){
        return this.And.name;
    }
};
document.write(X.And());

是否有任何方法可以实现这一目标,并不涉及约束上下文(即'这个')对函数的影响?

2 个答案:

答案 0 :(得分:2)

只需使用此aguments.callee.name;

试试这个例子:

function myFunc() 
{ 
    return arguments.callee.name; 
}

请注意arguments.callee will be depricated

答案 1 :(得分:2)

Function.caller或arguments.callee.name

但是,arguments.callee()在ES5下不起作用。而Function.caller不是标准的。