setInterval(code, time)中code传递参数办法

1.使用setInterval的场景

有时我们需要隔一定的时间执行一个方法,这时就会用到setInterval,但是由于这个方法是浏览器模拟出的Timer线程,在调用我们方法时不能为其传递参数。

2.setInterval传递参数办法

(1)采用string literals形式

  setInterval("interval(param)",1000);

  缺点:param必须是全局变量(即window对象上的变量),参数不能被周期性改变

(2)匿名函数包装

  window.setInterval(function()

      {

    interval(param);

      }, 1000);

  function interval(args){

  // TODO code

  }

   优点:周期性执行interval(param),且把变量param传递进去,param可以是局部变量

(3)闭包

  window.setInterval(wrapper(params), 1000);

  function wrapper(args){

    return function() {

      var params = args;

      // TODO code

    }

  }

  优点:利用闭包传参,简洁、思路清晰

(4)修改setInterval函数本身

  var _sto = setInterval; 

  window.setInterval = function(callback,timeout,param){ 

    var args = Array.prototype.slice.call(arguments,2); 

    var _cb = function(){ 

      callback.apply(null,args); 

    }  

    _sto(_cb,timeout); 

  }

  window.setInterval(interval,1000,arg);

  缺点:永久性修改setInterval函数,不可逆

3. 个人推荐

  建议使用第三种方法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏练小习的专栏

CSS计数器 counter

适用场景: 当排序以及序号变动对服务端造成的压力大的情况下,使用css计数。 在早期,只有ol和ul可以对子元素li进行排序,,而CSS2.1规范中加入了co...

24490
来自专栏Golang语言社区

JS基础(上)

JS与DOM的关系 浏览器有渲染html代码的功能,把html源码(如div,p标签等)在内存里形成一个DOM对象 文档对象模型DOM(Document Obj...

690140
来自专栏Golang语言社区

厚土Go学习笔记 | 07. 基本类型

Go语言的基本类型有 bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint6...

350120
来自专栏彭湖湾的编程世界

谈谈出入React框架踩过的坑

1 在JSX的元素中写入内联样式,例如<div style={"color:blue"}></div> 报错:warning:Style prop value ...

34560
来自专栏dotnet & java

jQuery.prop , jQuery.attr ,jQuery.data

jquery.prop 获取匹配的元素中第一个元素特定的属性值,或者是设置多个元素的属性值。

9320
来自专栏行者常至

005.golang 控制语句

10930
来自专栏Golang语言社区

切片的内部实现

type slice struct {         array unsafe.Pointer         len   int         ca...

381110
来自专栏IT开发技术与工作效率

VBA函数与过程简洁教程

22530
来自专栏学海无涯

2.Swift初体验

16130
来自专栏静晴轩

精妙JS代码段搜集

现在到处都是JavaScript,倘若花点时间去体察,每次都能知道点新的东西。一旦你入了门,你总能从这里或是那里领悟到很多知识。一旦发现些许有意思的东西,总习惯...

36650

扫码关注云+社区

领取腾讯云代金券