zoukankan      html  css  js  c++  java
  • 获取函数名

    如果当前函数是有名函数,则返回其名字,如果是匿名函数则返回被赋值的函数变量名,如果是闭包中匿名函数则返回“anonymous”。

         var getFnName = function(callee){
          var _callee = callee.toString().replace(/[\s\?]*/g,""),
          comb = _callee.length >= 50 ? 50 :_callee.length;
          _callee = _callee.substring(0,comb);
          var name = _callee.match(/^function([^\(]+?)\(/);
          if(name && name[1]){
            return name[1];
          }
          var caller = callee.caller,
          _caller = caller.toString().replace(/[\s\?]*/g,"");
          var last = _caller.indexOf(_callee),
          str = _caller.substring(last-30,last);
          name = str.match(/var([^\=]+?)\=/);
          if(name && name[1]){
            return name[1];
          }
          return "anonymous"
        };
    

    使用:在要调查的函数内部执行此函数,传入一个参数,为arguments.callee。

        function  ee(){
          //+++++++++++++++++++++++++++++++++
          var fnname =getFnName(arguments.callee)
          //+++++++++++++++++++++++++++++++++
          alert(fnname)
        };
        ee();
    

  • 相关阅读:
    我cnblogs的主题
    Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class
    Spark之路 --- Scala用JFreeChart画图表实例
    Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
    Spark之路 --- Windows Scala 开发环境安装配置
    epoll函数
    Linux网络编程目录
    函数wait和waitpid
    会话
    进程组
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1597523.html
Copyright © 2011-2022 走看看