JS中setInterval、setTimeout不能傳遞帶參數(shù)的函數(shù)的解決方案
這就需要想方法解決。
一、采用字符串形式:——(缺陷)參數(shù)不能被周期性改變
setInterval("foo(id)",1000);
二、匿名函數(shù)包裝 (推薦)
window.setInterval(function()
{
foo (id);
}, 1000);
這樣就可以周期性執(zhí)行foo(id)這個(gè)函數(shù),而且把變量id傳遞進(jìn)去;
三、定義返回?zé)o參函數(shù)的函數(shù)
function foo(id)
{
alert(id);
}
function _foo(id)
{
return function()
{
foo(id);
}
}
window.setInterval(_foo(id),1000);
這里定義了一個(gè)函數(shù)_foo,用于接收一個(gè)參數(shù),并返回一個(gè)不帶參數(shù)的函數(shù),在這個(gè)函數(shù)內(nèi)部使用了外部函數(shù)的參數(shù),從而對(duì)其調(diào)用,不需要使用參數(shù)。
在 window. setInterval函數(shù)中,使用_foo(id)來(lái)返回一個(gè)不帶參數(shù)的函數(shù)句柄,從而實(shí)現(xiàn)了參數(shù)傳遞的功能。
四、修改setInterval
function foo(id)
{
alert(id);
}
var _sto = setInterval;
window.setInterval = function(callback,timeout,param)
{
var args = Array.prototype.slice.call(arguments,2);
var _cb = function()
{
callback.apply(null,args);
}
_sto(_cb,timeout);
}
window.setInterval(hello,3000,userName);
以上的所有方法也適合setTimeout。
- JS中setTimeout()的用法詳解
- JS延遲加載(setTimeout) JS最后加載
- Js setInterval與setTimeout(定時(shí)執(zhí)行與循環(huán)執(zhí)行)的代碼(可以傳入?yún)?shù))
- js函數(shù)setTimeout延遲執(zhí)行的簡(jiǎn)單介紹
- JavaScript window.setTimeout() 的詳細(xì)用法
- js setTimeout 參數(shù)傳遞使用介紹
- JavaScript SetInterval與setTimeout使用方法詳解
- Js中setTimeout()和setInterval() 何時(shí)被調(diào)用執(zhí)行的用法
- JavaScript中SetInterval與setTimeout的用法詳解
- 如何通過(guò)setTimeout理解JS運(yùn)行機(jī)制詳解
相關(guān)文章
微信小程序圖片自適應(yīng)實(shí)現(xiàn)解析
這篇文章主要介紹了微信小程序圖片自適應(yīng)實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01微信小程序?qū)崿F(xiàn)簡(jiǎn)單Tab切換效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單Tab切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05原生Js 實(shí)現(xiàn)的簡(jiǎn)單無(wú)縫滾動(dòng)輪播圖的示例代碼
這篇文章主要介紹了原生Js 實(shí)現(xiàn)的簡(jiǎn)單無(wú)縫滾動(dòng)輪播圖的示例代碼,幫助大家更好的理解喝學(xué)習(xí)使用js,感興趣的朋友可以了解下2021-05-05原生js實(shí)現(xiàn)復(fù)制對(duì)象、擴(kuò)展對(duì)象 類似jquery中的extend()方法
jq的extend()方法能很方便的實(shí)現(xiàn)擴(kuò)展對(duì)象方法,這里要實(shí)現(xiàn)的是:原生js實(shí)現(xiàn)復(fù)制對(duì)象,擴(kuò)展對(duì)象,類似jq中的extend()方法,需要的朋友可以參考下2014-08-08js創(chuàng)建數(shù)組的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇JS創(chuàng)建數(shù)組的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07初學(xué)js 新節(jié)點(diǎn)的創(chuàng)建 刪除 的步驟
對(duì)于js 我是個(gè)初學(xué)者 甚至還不入門,我比較喜歡js做出的特效。2011-07-07js+html+css實(shí)現(xiàn)簡(jiǎn)單電子時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了js+html+css實(shí)現(xiàn)簡(jiǎn)單電子時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06如何檢測(cè)JavaScript中的死循環(huán)示例詳解
這篇文章主要給大家介紹了關(guān)于如何檢測(cè)JavaScript中死循環(huán)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08javascript單張多張圖無(wú)縫滾動(dòng)實(shí)例代碼
在本篇文章里小編給大家分享的是關(guān)于javascript單張多張圖無(wú)縫滾動(dòng)實(shí)例代碼和實(shí)例,需要的朋友們可以參考下。2020-05-05