首先我们要知道这两个函数对传入的函数是不能带有参数的。
有时候我们想通过setinterval来将一个带参数函数设置过多少时间就重复的执行该函数代码
例如:
function number(value){
alert(value);
}
如果直接用setinterval(number(1),1000)的话,那就不能实现,当然你可以这样setinterval("number(1)",1000),当时该方法只能作用于函数时全局函数,不然的话没有什么效果。
但是我们可以通过定义个返回匿名函数的函数
例如:
function _number(value){
return function(value){
number(value);
}
}
不过这个方法还不算是最好的,我们还可以重新定义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(hello,3000,userName);