JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用__第1頁
JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用__第2頁
JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用__第3頁
JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用__第4頁
JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用__第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論