`

如何给window.setInterval的函数传递参数

阅读更多
如何给window.setInterval的函数传递参数
2007-01-29 11:51

众所周知,调用window.setInterval(funcname,time)时,funcname要么直接防止函数体,要么放置函数的名字,比如

function test(){
    alert("");
}

window.setInterval(test,1000);
//window.setInterval("test",1000);

不过,如果要想给test函数传递参数就不好办了。实际上,通过一个匿名函数,就可以实现给函数传递参数了,比如

function test(username){
    alert(username);
}

window.setInterval(function(){
        test.apply(this,"comDeng");
    },1000);

这样以来,就将"comDeng"传递给test函数了。如果要做一个通用的处理方法的话,就可以写这样一个函数来实现。

function test(username){
    alert(username);
}

function bindInterval(funcName){
    var args=[];
    for(var i=1;i<arguments.length;i++){
        args.push(arguments[i]);
    }
    return function(){
        funcName.apply(this,args);
    }
}

window.setInterval(bindInterval(test,"comDeng"),1000);

像这种调用方法,看起来还是蛮复杂的,不妨再做一些简化:

function test(username){
    alert(username);
}

function JInterval(funcName,time){
      var args=[];
      for(var i=2;i<arguments.length;i++){
          args.push(arguments[i]);
      }
   return window.setInterval(function(){
    funcName.apply(this,args);
   },time);
  }

JInterval(test,2000,"comDeng");

这样以来的话,比原来可简洁多了!

分享到:
评论

相关推荐

    JS中setInterval、setTimeout不能传递带参数的函数的解决方案

    二、匿名函数包装 (推荐) 代码如下: window.setInterval(function() { foo (id); }, 1000); 这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去; 三、定义返回无参函数的函数 代码如下: function foo...

    javascript函数的解释

    javascript函数的解释,解释了具体函数的功能,一、函数JavaScript函数集合 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document-&gt;html-&gt;(head,body) 4.一个浏览器窗口中的DOM顺序是:...

    使用自定义setTimeout和setInterval使之可以传递参数和对象参数

    /****************************************************** // // 功能: 修改window.setTimeout,使之可以传递参数和对象参数 // 使用方法: window.setTimeout(回调函数,延迟时间,参数1,参数n) // ******************...

    Javascript DHTML 实例编程(教程)(四)初级实例篇2—动画

    语法皆是window.setTimeout(fn, delay), window.setInterval(fn, delay) fn可以是一个函数名,也可以是一个执行的字符串,但要注意的是,如果fn是一个可以执行的字符串,且有参数,如window.setInterval(...

    js中的setInterval和setTimeout使用实例

    setInterval() 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来执行函数或表达式。该方法会不停地循环调用函数,直到使用 clearInterval() 明确...一个可以传递给 Window.clearInterval() 从而取消对 co

    js使用小技巧

    网页传递参数 location.search(); 可编辑 obj.contenteditable=true 执行菜单命令 obj.execCommand 双字节字符 /[^x00-xff]/ 汉字 /[u4e00-u9fa5]/ 让英文字符串超出表格宽度自动换行 word-wrap: ...

    js常用代码段收集

    代码如下: /* 功能:修改 window.setTimeout,使之可以传递参数和对象参数 (同样可用于setInterval) 使用方法: setTimeout(回调函数,时间,参数1,…,参数n) (FF已经原生支持,IE不支持) */ var __sto = ...

    js常用代码段整理

    代码如下: /* 功能:修改 window.setTimeout,使之可以传递参数和对象参数 (同样可用于setInterval) 使用方法: setTimeout(回调函数,时间,参数1,…,参数n) (FF已经原生支持,IE不支持) */ var __sto = ...

    详解JS中定时器setInterval和setTImeout的this指向问题

    最近在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向window对象,详细的介绍通过一个示例展开,一起来看看吧。 如下例: var num = 0; function Obj (){ ...

    JavaScript笔记

    构造函数中的参数都是字符串 结论:所有的方法都是function类型的。 15.JavaScript中的所有事物都是对象,分为三类: |--简单对象:String、Number、Boolean |--组合对象:Array、Math、Date |--复杂对象:...

Global site tag (gtag.js) - Google Analytics