JavascriptFunction對象擴(kuò)展之延時執(zhí)行函數(shù)_javascript技巧
來源:懂視網(wǎng)
責(zé)編:小采
時間:2020-11-27 20:54:03
JavascriptFunction對象擴(kuò)展之延時執(zhí)行函數(shù)_javascript技巧
JavascriptFunction對象擴(kuò)展之延時執(zhí)行函數(shù)_javascript技巧:不就利用window對象的setTimeout方法嗎?Bingo,一點(diǎn)沒錯!如果你在一個應(yīng)用里面常常要延時執(zhí)行某某函數(shù),那末基于DRY的原則,可以針對Function全局對象進(jìn)行擴(kuò)展,為函數(shù)增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。 擴(kuò)站Function對象增
導(dǎo)讀JavascriptFunction對象擴(kuò)展之延時執(zhí)行函數(shù)_javascript技巧:不就利用window對象的setTimeout方法嗎?Bingo,一點(diǎn)沒錯!如果你在一個應(yīng)用里面常常要延時執(zhí)行某某函數(shù),那末基于DRY的原則,可以針對Function全局對象進(jìn)行擴(kuò)展,為函數(shù)增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。 擴(kuò)站Function對象增

不就利用window對象的setTimeout方法嗎?Bingo,一點(diǎn)沒錯!如果你在一個應(yīng)用里面常常要“延時執(zhí)行某某函數(shù)”,那末基于DRY的原則,可以針對Function全局對象進(jìn)行擴(kuò)展,為函數(shù)增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。
擴(kuò)站Function對象增加delay方法如下:
代碼如下:
Function.prototype.delay=function(this1,timeout){
this1=this1||null;
timeout=timeout||0;
var _this=this;
var args=[];
//獲取參數(shù),注:第1、第2個參數(shù)是保留參數(shù)
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;iif(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");
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
JavascriptFunction對象擴(kuò)展之延時執(zhí)行函數(shù)_javascript技巧
JavascriptFunction對象擴(kuò)展之延時執(zhí)行函數(shù)_javascript技巧:不就利用window對象的setTimeout方法嗎?Bingo,一點(diǎn)沒錯!如果你在一個應(yīng)用里面常常要延時執(zhí)行某某函數(shù),那末基于DRY的原則,可以針對Function全局對象進(jìn)行擴(kuò)展,為函數(shù)增加一個延時方法如delay,這樣會讓你的代碼更簡潔有效。 擴(kuò)站Function對象增