代码之家  ›  专栏  ›  技术社区  ›  user1283776

获取原型上函数的名称?[副本]

  •  0
  • user1283776  · 技术社区  · 7 年前

    是否可以这样做:

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

    我的堆栈中有Dojo和jQuery框架,因此如果这两个框架中的任何一个使它更容易,那么它们都是可用的。

    0 回复  |  直到 6 年前
        1
  •  5
  •   BitTickler    6 年前

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

    资料来源: Javascript - get current function name

        2
  •  0
  •   Eazicoding    5 年前

    function foo()
    { 
        alert(arguments.callee.name)
    }
    

    但是对于错误处理程序,结果将是错误处理程序函数的名称,不是吗?