




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用_ 這篇文章主要介紹了JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用,著兩個函數(shù)可以把要執(zhí)行的代碼在設(shè)定的一個時間點插入js引擎維護(hù)的一個代碼隊列中,需要的伴侶可以參考下 如何向 setTimeout 、 setInterval 傳遞參數(shù) 看如下代碼: var str = aaa; var num = 2; function auto(num) alert(num); setTimeout(auto(num),4000); 這樣寫是可以正常工作的,但是如其說這是參數(shù)傳遞,還不如
2、說是挺直用法的全局變量。所以,這種寫法是沒有必要的,一般狀況下更多的是用到傳遞局部變量作為參數(shù)。 把代碼修改一下: /var str = aaa; var num = 2; function test() var str = bbb; setTimeout(auto(str),4000); function auto(a) alert(a); test(); 這種寫法會報錯,假如把取消對 str 的全局聲明的說明,就會輸出 aaa,即函數(shù)依舊是調(diào)用全局變量。 看下面的代碼: /var str = aaa; var num = 2; function test() var str = bbb;
3、setTimeout(auto(str),4000); function auto(a) alert(a); test(); 留意上面的 str ,這樣寫會輸出 “str”,也就是說定時器調(diào)用函數(shù)后,是把 str 挺直當(dāng)作了參數(shù)。這樣傳遞的參數(shù)永久是字符串。這不是我們想要的結(jié)果。 要想傳遞除字符串意外的參數(shù),可以用法閉包,看下面代碼: /var str = aaa; var num = 2; function test() var str = bbb; setTimeout(auto(str),4000); function auto(str) return function() alert(
4、str); test(); 輸出結(jié)果為 bbb,假如給auto(str)加上引號同樣會報錯。 當(dāng)然,這樣寫也是不錯的: var num = 2; function test() var str = bbb; /setTimeout(auto(str),4000); setTimeout(function()alert(str),4000); function auto(str) return function() alert(str); test(); 最終需要留意的是,字不用法閉包傳遞參數(shù)時,定時器調(diào)用的函數(shù)是要加引號的,不加引號,會報錯。以上情形同樣適合 setInterval(); se
5、tTimeout 、 setInterval 中的函數(shù)調(diào)用 有如下代碼: var num = 2; function auto() alert(num); setTimeout(auto(),4000); 在這段程序里,測試的時候立即就可以看到彈出的警告框。也就是說根據(jù)以上方法引用函數(shù),定時器是不起作用的。 同樣,對于setInterval上面的寫法也不能正常工作,程序只能彈出一次警告框,然后報錯。 把定時器改為 setInterval(auto(),4000); setTimeout(auto(),4000); 程序可以正常工作。 當(dāng)不用法auto()調(diào)用函數(shù),只用法 auto會是什么樣呢? var str = aaa; var num = 2; function auto() alert(num); /setInterval(auto,4000); setTimeout(auto,4000);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智能用電系統(tǒng)產(chǎn)品合作協(xié)議書
- 合伙經(jīng)營鏟車合同范本
- 土壤改良工程填土施工合同范本
- 劇組法律顧問合同范本
- 合伙運(yùn)輸協(xié)議合同范本
- 商品陳列協(xié)議合同范本
- 各類廣告合同范本
- 廠房噴漆合同范本
- 俱樂部管理合同范本
- 廚師和飯店合同范本
- 辦公用品供貨服務(wù)計劃方案
- 《普通生物學(xué)教案》word版
- 貴州省就業(yè)失業(yè)登記表
- 預(yù)防電信詐騙網(wǎng)絡(luò)詐騙講座PPT幻燈片課件
- 反興奮劑知識試題及答案
- 初中八年級上冊音樂課件4.2欣賞沃爾塔瓦河(14張)ppt課件
- 人教版五年級數(shù)學(xué)下冊每個單元教材分析(共九個單元)
- 深圳氫燃料共享單車項目投資計劃書【參考范文】
- 主要腸內(nèi)營養(yǎng)制劑成分比較
- 小學(xué)生如何理解句子的含義(課堂PPT)
- 實際控制關(guān)系賬戶申報表
評論
0/150
提交評論