zoukankan      html  css  js  c++  java
  • 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. 个人推荐

      建议使用第三种方法。

  • 相关阅读:
    Virtual Studio 2010在Release模式下进行调试的设置方法
    OpenGL Shader
    OGRE的安装编译
    开源GIS平台空间数据管理与发布技术研究
    风靡世界的小游戏2048源代码
    成为优秀程序员的几个阶段
    颜色空间模型(HSVLABRGBCMYK)
    希望自己的博客被知名搜索引擎收录的网址
    我的第一篇博客
    当你的善良受到委屈时
  • 原文地址:https://www.cnblogs.com/wmhuang/p/4235173.html
Copyright © 2011-2022 走看看