javascript讓setInteval里的函數(shù)參數(shù)中的this指向特定的對(duì)象
這個(gè)問(wèn)題可麻煩了,我經(jīng)常要在循環(huán)函數(shù)里用this來(lái)引用當(dāng)前對(duì)象,也許你想到可以用閉包,不過(guò)實(shí)際情況并非如此簡(jiǎn)單,對(duì)象實(shí)例多了之后,閉包也亂套了.
我的愿望就是讓循環(huán)函數(shù)里的this仍然指向當(dāng)前上下文的對(duì)象,無(wú)需傳參數(shù),無(wú)需閉包(其實(shí)這也是閉包,只是形式上看著比較自然而已);
例如:(一部分代碼,作用是定時(shí)發(fā)送請(qǐng)求)
var sendRequest=function(){}
sendRequest.prototype={
.............................
.............................
beginSend:function(){
//使循環(huán)函數(shù)里的this指向本對(duì)象,而不是全局對(duì)象
this.loop_send=setInterval((function(param){
return function(){param.sendARequest();}
})(this),this.options.interval);
},
sendARequest:function(){
this.num++;
this.checkLimit();
var callback = {
success: this.handleSuccess,
failure: this.handleFail,
argument: {
handle: this,
timeout:500
}
}
var post_data="...."
//如果待發(fā)送的數(shù)據(jù)不為空,則將取出一條數(shù)據(jù)發(fā)到后臺(tái)
if(this.data_wait_for_send.length!=0){
for(var i=0,j=this.data_wait_for_send.length;i<j;i++){
post_data+="&content[]="+this.data_wait_for_send[i];
}
this.data_wait_for_send=[]
}
// debug(post_data)
var que = Connect.asyncRequest('POST', this.options.getUrl, callback,post_data);
},
......................
......................
}
如此,在sendARequest()函數(shù)里,我們可以正常使用this來(lái)引用當(dāng)前對(duì)象,使用當(dāng)前對(duì)象的變量和方法,這樣豈不是很方便?
相關(guān)文章
javascript實(shí)現(xiàn)蒙版與禁止頁(yè)面滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)蒙版與禁止頁(yè)面滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法
這篇文章主要給大家介紹了關(guān)于js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法,js中是不能直接用==或者===來(lái)計(jì)算兩個(gè)數(shù)組是否相等的,那么就需要對(duì)數(shù)組的值進(jìn)行比較,需要的朋友可以參考下2023-07-07Bootstrap框架實(shí)現(xiàn)廣告輪播效果
這篇文章主要為大家詳細(xì)介紹了Bootstrap框架結(jié)合JavaScript實(shí)現(xiàn)廣告輪播特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11詳解基于DllPlugin和DllReferencePlugin的webpack構(gòu)建優(yōu)化
這篇文章主要介紹了詳解基于DllPlugin和DllReferencePlugin的webpack構(gòu)建優(yōu)化,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06原生js實(shí)現(xiàn)點(diǎn)擊輪播切換圖片
這篇文章主要為大家詳細(xì)介紹了原生js點(diǎn)擊輪播切換圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02運(yùn)用Windows XP附帶的Msicuu.exe、Msizap.exe來(lái)徹底卸載頑固程序
運(yùn)用Windows XP附帶的Msicuu.exe、Msizap.exe來(lái)徹底卸載頑固程序...2007-04-04JavaScript整除運(yùn)算函數(shù)ceil和floor的區(qū)別分析
這篇文章主要介紹了JavaScript整除運(yùn)算函數(shù)ceil和floor的區(qū)別分析,實(shí)例分析了ceil和floor函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04JavaScript Canvas實(shí)現(xiàn)驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了JavaScript Canvas實(shí)現(xiàn)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08