看了網上的一篇文章<< 全面理解javascript的caller,callee,call,apply概念>>,記下代碼,備用 <script?language="JavaScript">
 /**//*
?*?演示arguments的用法,如何獲取實參數和形數數
?*/
 function?argTest(a,b,c,d) {
????var?numargs?=?arguments.length;?????//?獲取被傳遞參數的數值。
????var?expargs?=?argTest.length;???????//?獲取期望參數的數值。
????alert("實參數目為:"+numargs)
????alert("形數數目為:"+expargs)

????alert(arguments[0])?????????
????alert(argTest[0])??????????//undefined?沒有這種用法
}
//argTest(1,2)
//argTest(1,2,3,4,5)

 /**//*
?*??arguments不是數組(Array類)
?*/

Array.prototype.selfvalue?=?1;
 function?testAguments() {
????alert("arguments.selfvalue="+arguments.selfvalue);
}
//alert("Array.sefvalue="+new?Array().selfvalue);
//testAguments();





 /**//*
?*?演示函數的caller屬性.
?*?說明:(當前函數).caller:返回一個對函數的引用,該函數調用了當前函數
?*/

 function?callerDemo()? {
 ????if?(callerDemo.caller)? {
????????var?a=?callerDemo.caller.arguments[0];
????????alert(a);
 ????}?else? {
????????alert("this?is?a?top?function");
????}
}
 function?handleCaller()? {
????callerDemo();
}

//callerDemo();
//handleCaller("參數1","參數2");


 /**//*
?*?演示函數的callee屬性.
?*?說明:arguments.callee:初始值就是正被執行的?Function?對象,用于匿名函數
?*/
 function?calleeDemo()? {
????alert(arguments.callee);
}
//calleeDemo();
//(function(arg0,arg1){alert("形數數目為:"+arguments.callee.length)})();


 /**//*
?*?演示apply,call函數的用法
?*?說明:作用都是將函數綁定到另外一個對象上去運行,兩者僅在定義參數方式有所區別:
?*???????apply(thisArg,argArray);
?*?????call(thisArg[,arg1,arg2…]?]);
?*?????即所有函數內部的this指針都會被賦值為thisArg
?*/

 ?function?ObjectA() {
????alert("執行ObjectA()");
????alert(arguments[0]);
 ????this.hit=function(msg) {alert(msg)}
????this.info="我來自ObjectA"
?}
?
 ?function?ObjectB() {
????alert("執行ObjectB()");
????//調用ObjectA()方法,同時ObjectA構造函數中的所有this就會被ObjectB中的this替代
????ObjectA.apply(this,arguments);//ObjectA.call(this);
????alert(this.info);
?}
?//ObjectB('參數0');


?var?value="global?變量";
 ?function?Obj() {
????this.value="對象!";
?}
 ?function?Fun1() {
????alert(this.value);
?}
?//Fun1();
?//Fun1.apply(window);?
?//Fun1.apply(new?Obj());?
</script>
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 |
|
公告
常用鏈接
留言簿(4)
隨筆分類
相冊
Blog
論壇
積分與排名
最新評論

|
|