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. 个人推荐

      建议使用第三种方法。

  • 相关阅读:
    开发网站邮件发送模块
    HttpModule的Init事件
    一个产品留言统计查寻的分析比较
    Js中清空文件上传字段(input type=file )
    Asp.net生成Excel报表
    jQuery与开发的相关js文件包含顺序
    trycatch 与 Response.End()
    asp.net2.0中的Usercontrol动态创建
    客户javascript端验证图片文件大小与规格使用Image对象
    JQuery 常用代码收集
  • 原文地址:https://www.cnblogs.com/wmhuang/p/4235173.html
Copyright © 2011-2022 走看看