国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

javascript中call,apply,callee,caller用法實例分析

2024-05-06 16:53:34
字體:
來源:轉載
供稿:網友

本文實例講述了javascript中call,apply,callee,caller用法。分享給大家供大家參考,具體如下:

實踐一:call,apply 用來讓一個對象去調用本不屬于自己的方法,兩者都可以傳遞參數,call的參數是列表形式,apply的參數是數組形式

var person = { "name":"Tom", "say":function(){  console.log("person say"); }, "count":function(x,y,z){  console.log('x= ' + x + ', y= ' + y + ', z= ' + z); }, "sayName":function(){  console.log(this.name); }}// 下面的示例是數組 arr 去調用person的say方法 , 這里call用來讓數組調用本不屬于它自己的方法var arr = [1,2];person.say.call(arr);// call 還可以傳遞參數person.count.call(arr,1,2,3); // x= 1, y= 2, z= 3// apply 還可以這樣person.count.apply(arr,[1,2,3]); // x= 1, y= 2, z= 3

實踐二:call,apply 用來修改this,   同樣引用上例的person對象

var program = {"name":"AlphaGo"}person.sayName.call(program); // AlphaGoperson.sayName.apply(program); // AlphaGo

實踐三:call,apply把偽數組轉換為數組

// call,apply 把偽數組轉換為數組var wArr = {0:"hello",1:"world","length":2};var arr1 = Array.prototype.slice.call(wArr);var arr2 = Array.prototype.slice.apply(wArr);console.log(arr1); // [hello,world]console.log(arr2); // [hello,world]

這里找到一篇詳細的  關于偽數組的文章

實踐四:單純的arguments對象

// 有關argumentsfunction count(a,b,c){ console.log(arguments.length); if(count.length === arguments.length) {  console.log('實際參數與形參個數相同'); }else{  console.log('實際參數與形參個數不同'); }}count(1,2,3); // 實際參數與形參個數相同count(1,2); // 實際參數與形參個數不同/*這里count.length 表示形參個數arguments.length 表示實參個數*/

實踐五:caller 用于查看,函數本身被哪個函數調用

function fn1(){ if(fn1.caller){  console.log(fn1.caller.name + " 是函數fn1的調用者"); }else{  console.log("直接執(zhí)行"); }}function fn2(){ fn1();};fn2(); // fn2是是函數fn1的調用者

實踐六:callee 返回正被執(zhí)行的 Function 對象,常用于匿名函數的遞歸與arguments一起配合使用。

var sum = function(n){ if(n>0) {  return n + arguments.callee(n-1); } return 0;};var total = sum(10);console.log(total); // 55// arguments.callee 代指函數自身。function test(){ console.log(arguments.callee);}test(); // 輸出函數自身的字符串表達式

 

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 普格县| 杭州市| 襄樊市| 咸阳市| 沙坪坝区| 新晃| 德庆县| 界首市| 阜平县| 兴安盟| 海阳市| 新泰市| 东平县| 保定市| 兰坪| 札达县| 道真| 威信县| 井冈山市| 会同县| 藁城市| 天门市| 离岛区| 正阳县| 尉犁县| 凌海市| 吉安市| 呈贡县| 承德县| 卓资县| 嘉定区| 松原市| 泊头市| 望城县| 柘荣县| 拜城县| 扎鲁特旗| 玉山县| 许昌县| 开远市| 关岭|