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();
    

  • 相关阅读:
    vue与mui起冲突
    pc端使用微信登陆
    文字显示两行,多余的省略号(兼容搜狐)
    ios input 添加 readonly 属性,光标依旧还在的解决办法
    调用微信扫一扫接口扫描二维码
    js搜索框实现自动搜索功能
    跳转页面的几种方法
    关于清空object对象里的属性的两种方法
    http://stormzhang.com/opensource/2016/06/26/android-open-source-project-recommend1/
    给 Android 初学者的 Gradle 知识普及
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1597523.html
Copyright © 2011-2022 走看看