js setTimeout 常見(jiàn)問(wèn)題小結(jié)
更新時(shí)間:2013年08月13日 11:13:10 作者:
主要包括this指向問(wèn)題、向setTimeout傳入?yún)?shù)等相關(guān)問(wèn)題,下面與大家分享下以上問(wèn)題的解決方法,感興趣的朋友可以參考下
一、 setTimeout this指向問(wèn)題
setTimeout("this.count()",1000)中的this指的是window對(duì)象.
js的setTimeout定義為
window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
//.....代碼
return timer//返回一個(gè)標(biāo)記符
}
所以當(dāng)向setTimeout()傳入this的時(shí)候,當(dāng)然指的是它所屬的當(dāng)前對(duì)象window了。
解決方法:
1、在調(diào)用setTimeout前先保存this,如self=this; setTimeout("self.count()", 1000);
2、使用jquery的$.proxy改變this指向,如$.proxy(setTimeout("this.count()"), this);
二、向setTimeout傳入?yún)?shù)
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(function(){ searchJDWater(url);},100);
}
親測(cè)可以傳入任意參數(shù),可以是string類(lèi)型也可以是其他的類(lèi)型,只是在傳入this時(shí)要注意用上面的解決方法。
附上一個(gè)更加詳細(xì)的向settimeout傳參方法鏈接http://www.dbjr.com.cn/article/40524.htm
setTimeout("this.count()",1000)中的this指的是window對(duì)象.
js的setTimeout定義為
復(fù)制代碼 代碼如下:
window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
//.....代碼
return timer//返回一個(gè)標(biāo)記符
}
所以當(dāng)向setTimeout()傳入this的時(shí)候,當(dāng)然指的是它所屬的當(dāng)前對(duì)象window了。
解決方法:
1、在調(diào)用setTimeout前先保存this,如self=this; setTimeout("self.count()", 1000);
2、使用jquery的$.proxy改變this指向,如$.proxy(setTimeout("this.count()"), this);
二、向setTimeout傳入?yún)?shù)
復(fù)制代碼 代碼如下:
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(function(){ searchJDWater(url);},100);
}
親測(cè)可以傳入任意參數(shù),可以是string類(lèi)型也可以是其他的類(lèi)型,只是在傳入this時(shí)要注意用上面的解決方法。
附上一個(gè)更加詳細(xì)的向settimeout傳參方法鏈接http://www.dbjr.com.cn/article/40524.htm
相關(guān)文章
簡(jiǎn)介JavaScript中charAt()方法的使用
這篇文章主要介紹了JavaScript中charAt()方法的使用詳解,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06關(guān)于js的三種使用方式(行內(nèi)js、內(nèi)部js、外部js)的程序代碼
本文主要和大家介紹關(guān)于js的三種使用方式(行內(nèi)js、內(nèi)部js、外部js)的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家2018-05-05JavaScript使用escape()、encodeURI()和decodeURI()實(shí)現(xiàn)URI編碼解碼
這篇文章介紹了JavaScript使用escape()、encodeURI()和decodeURI()實(shí)現(xiàn)URI編碼解碼的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05JavaScript程序中實(shí)現(xiàn)繼承特性的方式總結(jié)
JavaScript是一門(mén)強(qiáng)行聲稱面向?qū)ο蟮恼Z(yǔ)言,而繼承是面向?qū)ο蟮囊淮笾饕匦?這里我們根據(jù)阮一峰老師的文章來(lái)看一下JavaScript程序中實(shí)現(xiàn)繼承特性的方式總結(jié)2016-06-06javascript學(xué)習(xí)筆記(十七) 檢測(cè)瀏覽器插件代碼
javascript學(xué)習(xí)筆記之檢測(cè)瀏覽器插件代碼,需要的朋友可以參考下2012-06-06有關(guān)javascript的性能優(yōu)化 (repaint和reflow)
本篇文章,小編將為大家介紹,有關(guān)javascript的性能優(yōu)化(repaint和reflow),有需要的朋友可以參考一下2013-04-04