javascript获取函数名称、函数参数、对象属性名称的代码实例
来源:互联网 发布:超市零售数据 编辑:程序博客网 时间:2024/06/05 20:28
一、获取函数名称的3种实现方法实例1:在js权威指南中看到的一个方法:function.prototype.getname = function(){return this.name || this.tostring().match(/function\s*([^(]*)\(/)[1]}实例2:如果当前函数是有名函数,则返回其名字,如果是匿名函数则返回被赋值的函数变量名,如果是闭包中匿名函数则返回“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();实例3:代码如下: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, '');}elsereturn _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());以上的方法还有一个情况没法解决,希望有办法的能给出指点。代码如下:var x ={run : function(){return getfuncname(arguments.callee);}}window.alert(x.run());这个情况下无法得到函数的名称;二、js获取函数的所有参数和遍历某个对象所有的属性名称和值的方法1.获取所有参数代码如下:function test(){for(var i=0;i<arguments.length;i++)document.write(arguments[i]);}2.遍历某个对象所有的属性名称和值的方法代码如下:<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 0
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- JavaScript获取函数参数名称
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- javascript 扩展Function对象 获取函数名称
- 获取计算机名称的函数
- 获取js的函数名称
- 【JavaScript】方法属性的匿名函数是匿名函数么(附:获取当前执行函数名称的方法)
- Java获取函数参数名称的几种方法
- 获取JSON对象的属性名称
- js中获取对象的属性名称
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- js获取函数的函数名称
- Javascript 函数参数名妙用(区分函数参数名称)
- 讨论一个Android 异步开发中容易忽视的bug
- c++ diary3
- 不重新启动LINUX服务器添加新硬盘!
- APUE_文件管理
- poj2251 Dungeon Master (广度搜索)
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- Linux分配swap分区
- MySQL数据表基本操作
- hdu1517 A Multiplication Game
- 被围绕的区域
- 程序员必须知道的10大基础实用算法及其讲解
- Xcode中git的配置与使用
- hadoop - hadoop2.6 分布式 - 集群环境搭建 - 系统搭建和网络配置
- 文章标题