setTimeout 傳參

通常setTimeout中的參數爲函數

   setTimeout(f,time)
可是若是我想要給f函數傳入一個參數怎麼辦
  setTimeout(f(arguments),time)spa

若是我這樣寫的話,那麼time就不起做用了,f函數會當即執行,由於函數名後跟圓括號code


1、讓f(arguments)返回一個無參函數
function f(arguments){
  return function(){
    ff(arguments);
  }
}
這樣雖然f(arguments)當即執行了,執行後也只是一個無參函數,而後在ff(arguments)中寫入真正想要調用的函數
最終代碼爲:blog

setTimeout(f(arguments),time);
function f(arguments){
  return function(){
    ff(arguments);
  }
}
function ff(arguments){
  // do something;
}

 


2、將第一個參數寫成函數定義,其實和一的本質是同樣的io

setTimeout(function(){ff(arguments);},time); 也能夠是  setTimeout(function a(){ff(arguments);},time);
function ff(arguments){
  // do something;
}
相關文章
相關標籤/搜索