LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JavaScript 中的arguments,callee,caller,call,apply

admin
2010年8月13日 23:3 本文热度 3616





01 [/code]






02 <script language="JavaScript">






03 /**//*






04  * 演示arguments的用法,如何获取实参数和形数数






05  */






06 function argTest(a,b,c,d){






07     var numargs = arguments.length;     // 获取被传递参数的数值。






08     var expargs = argTest.length;       // 获取期望参数的数值。






09     alert("实参数目为:"+numargs)






10     alert("形数数目为:"+expargs)






11   






12     alert(arguments[0])






13     alert(argTest[0])          //undefined 没有这种用法






14 }






15 //argTest(1,2)






16 //argTest(1,2,3,4,5)






17   






18 /**//*






19  *  arguments不是数组(Array类)






20  */






21   






22 Array.prototype.selfvalue = 1;






23 function testAguments(){






24     alert("arguments.selfvalue="+arguments.selfvalue);






25 }






26 //alert("Array.sefvalue="+new Array().selfvalue);






27 //testAguments();






28   






29 /**//*






30  * 演示函数的caller属性.






31  * 说明:(当前函数).caller:返回一个对函数的引用,该函数调用了当前函数






32  */






33   






34 function callerDemo() {






35     if (callerDemo.caller) {






36         var a= callerDemo.caller.arguments[0];






37         alert(a);






38     } else {






39         alert("this is a top function");






40     }






41 }






42 function handleCaller() {






43     callerDemo();






44 }






45   






46 //callerDemo();






47 //handleCaller(" 参数1","参数2");






48   






49 /**//*






50  * 演示函数的callee属性.






51  * 说明:arguments.callee:初始值就是正被执行的 Function 对象,用于匿名函数






52  */






53 function calleeDemo() {






54     alert(arguments.callee);






55 }






56 //calleeDemo();






57 //(function(arg0,arg1) {alert("形数数目为:"+arguments.callee.length)})();






58   






59 /**//*






60  * 演示apply,call函数的用法






61  * 说明:作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别:






62  *       apply(thisArg,argArray);






63  *     call(thisArg[,arg1,arg2…] ]);






64  *     即所有函数内部的this指针都会被赋值为thisArg






65  */






66   






67  function ObjectA(){






68     alert("执行ObjectA()");






69     alert(arguments[0]);






70     this.hit=function(msg){alert(msg)}






71     this.info="我来自ObjectA"






72  }






73   






74  function ObjectB(){






75     alert("执行ObjectB()");






76     //调用ObjectA()方法,同时ObjectA构造函数中的所有this就会被 ObjectB中的this替代






77     ObjectA.apply(this,arguments);//ObjectA.call(this);






78     alert(this.info);






79  }






80  //ObjectB('参数0');






81   






82  var value="global 变量";






83  function Obj(){






84     this.value="对象!";






85  }






86  function Fun1(){






87     alert(this.value);






88  }






89  //Fun1();






90  //Fun1.apply(window);






91  //Fun1.apply(new Obj());






92 </script>






93 [code]

该文章在 2010/8/13 23:03:10 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved