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;
}
相关文章
相关标签/搜索