【问题标题】:How can I get a function name when it is being called?调用时如何获取函数名称?
【发布时间】:2014-07-25 06:58:59
【问题描述】:

我不确定这是否是一个好主意,但我希望能够在调用函数时从其中获取函数的名称。我在下面编写的测试代码似乎可以工作,因为它不会导致名称冲突,但我无法在不知道的情况下获得函数的名称。

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

有什么方法可以在不涉及在函数上绑定上下文(即“this”的值)的情况下实现这一点?

【问题讨论】:

    标签: javascript function


    【解决方案1】:

    只需使用这个 aguments.callee.name;

    试试这个例子:

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

    注意arguments.callee will be depricated

    【讨论】:

      【解决方案2】:

      Function.caller 或 arguments.callee.name

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

      【讨论】:

        猜你喜欢
        • 2011-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多