众所周知,调用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");
这样以来的话,比原来可简洁多了!
相关推荐
- `[param1, param2, ...]`: 可选参数,传递给`functionOrCode`中的函数。 - **返回值**: - 返回一个非负整数,表示定时器的唯一标识符(ID),这个ID可以用来取消对应的定时器。 - **示例**: ```javascript ...
- `window.setInterval()`和`window.clearInterval()`:周期性执行某函数,或停止周期性执行。 通过001.html和main.html这两个文件,你可以看到这些概念在实际代码中的应用,以及如何通过注释更好地理解它们的工作...
`setInterval(function, milliseconds, param1, param2, ...)`这个函数会周期性地以`milliseconds`指定的时间间隔执行`function`函数,`param1, param2, ...`则是传递给该函数的参数。在Three.js中,我们可以利用这...
本文将详细讲解window.setTimeout()和window.setInterval()的使用方式,并着重分析在不同场景下的参数传递问题。 首先,我们来看setTimeout和setInterval的基本用法。setTimeout方法用于将某个函数推迟执行一定的...
当作为回调函数传递时,箭头函数与普通函数的行为有所不同。箭头函数不会创建自己的`this`上下文,而普通函数则会: ```javascript const obj = { name: 'John', greet: function() { setTimeout(() => { console...
- `arg1, arg2, ...`:传递给函数的参数。 ##### 7. `window.clearTimeout()` - **语法**:`window.clearTimeout(timeoutID)` - **描述**:取消由`window.setTimeout()`设置的定时器。 ##### 8. `window....
它们不仅可以执行特定任务,还可以作为一等公民,即函数可以赋值给变量、作为参数传递给其他函数,甚至作为其他函数的返回值。这种特性使得JavaScript支持函数式编程风格。 函数定义有两种主要方式:函数声明和函数...
这在实际开发中可能会带来不便,因为往往需要将数据或者变量传递给定时器执行的函数。以下是一些解决这个问题的方法: 1. **字符串形式**: 使用函数名字符串的方式可以传递参数,但这种方法的缺点是参数不能在...
在上述例子中,如果不再需要定时器,可以通过传递`setInterval()`返回的ID`flag`给`clearInterval()`来停止它。 关于`offsetLeft`和`style.left`的区别: 1. `offsetLeft` 属性返回元素相对于其最近的定位...
- `window.setInterval()`和`window.clearInterval()`:设置周期性定时器,重复执行某操作。 - `window.scrollTo()`和`window.scrollBy()`:滚动页面到指定位置或距离。 5. **事件处理** Window对象是事件模型的...
这段代码通过检查浏览器特性,对 `setTimeout` 和 `setInterval` 进行了重写,使得在IE浏览器中也能正确地传递额外参数给回调函数。这里使用了 `Array.prototype.slice.call` 来获取 `arguments` 对象的数组形式,...
- `window.setInterval()`:周期性执行一个函数,每过指定的毫秒数调用一次。 - `window.clearInterval()`:清除之前通过`setInterval()`设置的定时器。 - `window.setTimeout()`:延迟执行一次函数,等待指定的...
/****************************************************** // // 功能: 修改window.setTimeout,使之可以传递参数和对象参数 // 使用方法: window.setTimeout(回调函数,延迟时间,参数1,参数n) // ******************...
语法皆是window.setTimeout(fn, delay), window.setInterval(fn, delay) fn可以是一个函数名,也可以是一个执行的字符串,但要注意的是,如果fn是一个可以执行的字符串,且有参数,如window.setInterval(...
setInterval函数用于循环执行代码。它的基本语法是: ``` var intervalId = window.setInterval(func, delay); ``` 这里,func是要循环执行的函数或代码,delay是延迟时间,以毫秒为单位。函数执行的间隔就是这个...
返回值是一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。 以下是一个使用 setInterval 函数的示例代码: ```html ; charset=utf-8" /> var int = setInterval("clock()", 50); ...
- **param1, param2, ...**:可选参数,传递给`function`的参数。 例如,下面的代码会在页面加载后每隔一秒(1000毫秒)在控制台输出一次“Hello, World!”: ```javascript window.onload = function() { var ...
当这个返回的函数被传递给 `window.setTimeout` 后,`_hello(userName)` 将返回一个可以正确接收参数的函数。然后,`window.setTimeout` 将延迟执行这个函数。 除了上面的方法之外,我们也可以直接在 setTimeout 的...