js定时器传参

js定时器有两种

  • setTimeOut(fn, time) time毫秒之后,只执行一次
  • setInterval(fn, time) 重复的无限次数的执行,在关闭定时器之前,每隔time毫秒就执行一次,执行无数次

给定时器的回调函数传递参数

  • 直接调用的方法后面传递参数(不可行)
//能获取到参数,但是会立即执行一次,而不是在1s后执行,没有定时器的效果了,不可取
setTimeout(setTime('小明'), 1000)
function setTime(name) {
  console.log('定时器执行并且接收参数:', name)
}
  • 简单方便的传参(可行)
//查看nodejs文档可知,回调函数的参数可以通过定时器的后面的参数直接传递,多个参数用“,”拼接。
setTimeout(setTime, 1000, 12, '路西')   // setTimeout(setTime, 1000, '参数1', '参数2’, ...) 
function setTime(num, name) {
  console.log('定时器执行并且接收参数:', num, name)
}

*通过闭包的方式接收参数(可行)

setTimeout(setTime('小明'), 1000)
function setTime(name) {
  return () => {
    console.log(name)
  }
}

觉得好的话,点个赞再走吧!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容