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

  • 相关阅读:
    斯皮尔曼+假设检验
    53. Maximum Subarray
    工具网站
    Win10 不稳定经常死机 -蓝屏-电脑-电脑 系统启动后 键盘等一会才有反应
    MFC 代码无错却无法运行
    为什么喝酒不能吃头孢
    基于靶机的SQL注入的探测
    SQlMap注入的基本原理
    burp suite 简单靶机验证码绕过【前台|后台验证】自娱自乐系列
    burp suite 基于自娱自乐的靶机简单密码爆破
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1597523.html
Copyright © 2011-2022 走看看