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

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

admin
2010年8月13日 23:3 本文热度 3390
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