通常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; }