關於js定時器函數傳參問題


正常情況下 js定時器應該是setTimeout(fn1,3000);或setInterval(fn1,3000);

function fn1(str){

alert(111);

}

但是當我們需要用到參數時:

1、

通過加引號方式setTimeout("fn1(str)",3000);

這種是最簡單的但是也是功能最不全的,一個是因為對於其setTimeout("fn1(str)",3000);str如果必須是window對象否則會報錯。

 

2、

通過閉包的形式

這種功能已經基本都具備:

function fn(_str){
       alert(str);
}
function _fn(str){
 
       return function(){
             fn(str);
       }
}
setTimeout(__fn(str),3000);
unction fn(_str){
       alert(str);
}
function _fn(str){

       return function(){
             fn(str);
       }
}
setTimeout(__fn(str),3000);

3.第三種方法是使用定時器的第三個,第四個,.........參數,不知道為什么w3c教程的參數列表中沒提到

setTimeout(fn,100,參數1,參數2.......)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM