首页 > 其他 > 详细

setTimeout 传参

时间:2016-08-06 15:49:47      阅读:225      评论:0      收藏:0      [点我收藏+]

一般setTimeout中的参数为

   setTimeout(f,time)
但是如果我想要给f函数传入一个参数怎么办
  setTimeout(f(arguments),time)

如果我这样写的话,那么time就不起作用了,f函数会立即执行,因为函数名后跟圆括号


一、让f(arguments)返回一个无参函数
function f(arguments){
  return function(){
    ff(arguments);
  }
}
这样虽然f(arguments)立即执行了,执行后也只是一个无参函数,然后在ff(arguments)中写入真正想要调用的函数
最终代码为:

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

 


二、将第一个参数写成函数定义,其实和一的本质是一样的

setTimeout(function(){ff(arguments);},time); 也可以是  setTimeout(function a(){ff(arguments);},time);
function ff(arguments){
  // do something;
}

 

setTimeout 传参

原文:http://www.cnblogs.com/YangqinCao/p/5744181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!