源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript获取函数名称、函数参数、对象属性名称的代码实例

  • 时间:2021-02-12 13:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript获取函数名称、函数参数、对象属性名称的代码实例
[b]一、获取函数名称的3种实现方法 [/b] [b]实例1:[/b] 在js权威指南中看到的一个方法: Function.prototype.getName = function(){     return this.name || this.toString().match(/function\s*([^(]*)\(/)[1] } [b]实例2:[/b] 如果当前函数是有名函数,则返回其名字,如果是匿名函数则返回被赋值的函数变量名,如果是闭包中匿名函数则返回“anonymous”。
[u]复制代码[/u] 代码如下:
     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。
[u]复制代码[/u] 代码如下:
    function  ee(){       //+++++++++++++++++++++++++++++++++       var fnname =getFnName(arguments.callee)       //+++++++++++++++++++++++++++++++++       alert(fnname)     };     ee();
[b]实例3:[/b]
[u]复制代码[/u] 代码如下:
function getFuncName(_callee) {  var _text = _callee.toString();  var _scriptArr = document.scripts;  for (var i=0; i<_scriptArr.length; i++)  {   var _start = _scriptArr[i].text.indexOf(_text);   if (_start != -1)   {    if (/^function\s*\(.*\).*\r\n/.test(_text))    {     var _tempArr = _scriptArr[i].text.substr(0, _start).split('\r\n');     return _tempArr[_tempArr.length - 1].replace(/(var)|(\s*)/g, '').replace(/=/g, '');    }    else     return _text.match(/^function\s*([^\(]+).*\r\n/)[1];   }  } } function a() {  return getFuncName(arguments.callee); } var b = function() {  return getFuncName(arguments.callee); } window.alert(a()); window.alert(b());
以上的方法还有一个情况没法解决,希望有办法的能给出指点。
[u]复制代码[/u] 代码如下:
var x =   {      run : function()      {          return getFuncName(arguments.callee);      }  }  window.alert(x.run()); 
这个情况下无法得到函数的名称; [b]二、js获取函数的所有参数和遍历某个对象所有的属性名称和值的方法[/b] [b]1.获取所有参数 [/b]
[u]复制代码[/u] 代码如下:
function test(){ for(var i=0;i<arguments.length;i++)  document.write(arguments[i]); }
[b]2.遍历某个对象所有的属性名称和值的方法 [/b]
[u]复制代码[/u] 代码如下:
<script language="javascript"> var obj = new Object(); obj.myname = "我是对象"; obj.pro2 = "23"; obj.pro3 = "abcdeg"; php程序员站 for (items in obj){  document.write("属性:"+items+"的值是 ("+ obj[items] +")");  document.write("<br>"); } </script>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部