`

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

 
阅读更多

 

众所周知,调用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");

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

分享到:
评论

相关推荐

    window.clearInterval与window.setInterval的用法.

    - `[param1, param2, ...]`: 可选参数,传递给`functionOrCode`中的函数。 - **返回值**: - 返回一个非负整数,表示定时器的唯一标识符(ID),这个ID可以用来取消对应的定时器。 - **示例**: ```javascript ...

    字符串 window.open() window.opener window.name window对象等的总结

    - `window.setInterval()`和`window.clearInterval()`:周期性执行某函数,或停止周期性执行。 通过001.html和main.html这两个文件,你可以看到这些概念在实际代码中的应用,以及如何通过注释更好地理解它们的工作...

    Three.JS动画实现:window.setInterval()

    `setInterval(function, milliseconds, param1, param2, ...)`这个函数会周期性地以`milliseconds`指定的时间间隔执行`function`函数,`param1, param2, ...`则是传递给该函数的参数。在Three.js中,我们可以利用这...

    精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!

    本文将详细讲解window.setTimeout()和window.setInterval()的使用方式,并着重分析在不同场景下的参数传递问题。 首先,我们来看setTimeout和setInterval的基本用法。setTimeout方法用于将某个函数推迟执行一定的...

    JavaScript_window.setTimeout()_的详细用法

    当作为回调函数传递时,箭头函数与普通函数的行为有所不同。箭头函数不会创建自己的`this`上下文,而普通函数则会: ```javascript const obj = { name: 'John', greet: function() { setTimeout(() =&gt; { console...

    关于js-window对象的方法和属性资料

    - `arg1, arg2, ...`:传递给函数的参数。 ##### 7. `window.clearTimeout()` - **语法**:`window.clearTimeout(timeoutID)` - **描述**:取消由`window.setTimeout()`设置的定时器。 ##### 8. `window....

    函数和window对象

    它们不仅可以执行特定任务,还可以作为一等公民,即函数可以赋值给变量、作为参数传递给其他函数,甚至作为其他函数的返回值。这种特性使得JavaScript支持函数式编程风格。 函数定义有两种主要方式:函数声明和函数...

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

    这在实际开发中可能会带来不便,因为往往需要将数据或者变量传递给定时器执行的函数。以下是一些解决这个问题的方法: 1. **字符串形式**: 使用函数名字符串的方式可以传递参数,但这种方法的缺点是参数不能在...

    window.setInterval()方法的定义和用法及offsetLeft与style.left的区别

    在上述例子中,如果不再需要定时器,可以通过传递`setInterval()`返回的ID`flag`给`clearInterval()`来停止它。 关于`offsetLeft`和`style.left`的区别: 1. `offsetLeft` 属性返回元素相对于其最近的定位...

    即用即查-JavaScript核心对象参考手册 window

    - `window.setInterval()`和`window.clearInterval()`:设置周期性定时器,重复执行某操作。 - `window.scrollTo()`和`window.scrollBy()`:滚动页面到指定位置或距离。 5. **事件处理** Window对象是事件模型的...

    仅IE不支持setTimeout/setInterval函数的第三个以上参数

    这段代码通过检查浏览器特性,对 `setTimeout` 和 `setInterval` 进行了重写,使得在IE浏览器中也能正确地传递额外参数给回调函数。这里使用了 `Array.prototype.slice.call` 来获取 `arguments` 对象的数组形式,...

    javascript Window及document对象详细整理

    - `window.setInterval()`:周期性执行一个函数,每过指定的毫秒数调用一次。 - `window.clearInterval()`:清除之前通过`setInterval()`设置的定时器。 - `window.setTimeout()`:延迟执行一次函数,等待指定的...

    使用自定义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函数用于循环执行代码。它的基本语法是: ``` var intervalId = window.setInterval(func, delay); ``` 这里,func是要循环执行的函数或代码,delay是延迟时间,以毫秒为单位。函数执行的间隔就是这个...

    js中的setInterval和setTimeout使用实例.docx

    返回值是一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。 以下是一个使用 setInterval 函数的示例代码: ```html ; charset=utf-8" /&gt; var int = setInterval("clock()", 50); ...

    Java Script中setinterval怎么用?怎么才能让setinterval停下来?.pdf

    - **param1, param2, ...**:可选参数,传递给`function`的参数。 例如,下面的代码会在页面加载后每隔一秒(1000毫秒)在控制台输出一次“Hello, World!”: ```javascript window.onload = function() { var ...

    Javascript 定时器调用传递参数的方法

    当这个返回的函数被传递给 `window.setTimeout` 后,`_hello(userName)` 将返回一个可以正确接收参数的函数。然后,`window.setTimeout` 将延迟执行这个函数。 除了上面的方法之外,我们也可以直接在 setTimeout 的...

Global site tag (gtag.js) - Google Analytics