假设有如下函数的定义:
function foo(){
alert(1);
}
有两种方法可以在setInterval中调用foo函数:
(1)setInterval('foo();', 2000);
(2)setInterval(foo, 2000);
现在我们将foo函数的定义修改如下:
function foo(n){
alert(n);
}
如果我们需要在setInterval中调用foo函数,并且使用临时变量作为他的参数时,可以使用如下方法:
var param = 1; //我们假设param是一个临时变量
//setInterval('foo(param)', 2000); 这种方法是错误的
setInterval((function(n){
return function(){foo(n);};
})(param), 2000);
在这个过程中我们定义了一个匿名函数并进行了调用,并将这个匿名函数的返回值(也是一个函数)作为setInterval的第一个参数。本质上类似上面所提到的第(2)种setInterval的调用方法。