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

首頁 > 編程 > JavaScript > 正文

Javascript Function對象擴展之延時執行函數

2019-11-21 00:22:32
字體:
來源:轉載
供稿:網友

不就利用window對象的setTimeout方法嗎?Bingo,一點沒錯!如果你在一個應用里面常常要“延時執行某某函數”,那末基于DRY的原則,可以針對Function全局對象進行擴展,為函數增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。
擴站Function對象增加delay方法如下:

復制代碼 代碼如下:

Function.prototype.delay=function(this1,timeout){
this1=this1||null;
timeout=timeout||0;
var _this=this;
var args=[];
//獲取參數,注:第1、第2個參數是保留參數
switch(arguments.length){
case 1:
timeout=parseInt(arguments[0]);
timeout=isNaN(timeout)?0:timeout;
timeout=timeout<0?0:timeout;
break;
default:
for(var i=0;i<arguments.length;i++){
if(i>1){args.push(arguments[i]);};
};
break;
};
var proxy=function(){
_this.apply(this1,args);
};
return window.setTimeout(proxy,timeout);
};

在firefox的firebug插件的控制臺下面測試下,代碼如:
復制代碼 代碼如下:

var xx=function(n){
this.name=n;
};
xx.prototype.hi=function(a,b){
console.log(this.name+"-"+a+"-"+b);
};
var xx1=new xx("levin");
var t=xx1.hi.delay(xx1,1000,"cocoa","yoyo");
xx1.hi("guluglu","jigujigu");

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐亭县| 昌都县| 麦盖提县| 会昌县| 广河县| 洞口县| 山东省| 宿州市| 营山县| 仁化县| 宁远县| 黔西县| 简阳市| 固原市| 彭山县| 五寨县| 达日县| 仁怀市| 新兴县| 平江县| 梨树县| 陆川县| 吉木乃县| 菏泽市| 潢川县| 深水埗区| 丁青县| 吉首市| 烟台市| 通许县| 绥滨县| 鄄城县| 平顺县| 金川县| 阜城县| 儋州市| 炎陵县| 阳曲县| 民丰县| 昌江| 黄大仙区|