向setInterval , setTimeout调用的函数传递参数
setTimeout 或 setInterval 调用的函数不能直接传递参数,以下为解决这个问题提供了一种可行的解决方案,个人比较推崇这种方式.
window.onload = function(){
window.setTimeout(getFunToExecute(add,1,2),10);
//add为要调用的函数,1,2..为 add的参数
//getAfun是关键,通过它可以为setTimeout 或 setInterval调用的函数传递参数
}
function getFunToExecute(fun){
var args = Array.prototype.slice.call(arguments).slice(1);
return function(){
fun.apply(window,args);
}
}
function add(x,y){
alert(x+y);
//return x+y;
}
window.onload = function(){
window.setTimeout(getFunToExecute(add,1,2),10);
//add为要调用的函数,1,2..为 add的参数
//getAfun是关键,通过它可以为setTimeout 或 setInterval调用的函数传递参数
}
function getFunToExecute(fun){
var args = Array.prototype.slice.call(arguments).slice(1);
return function(){
fun.apply(window,args);
}
}
function add(x,y){
alert(x+y);
//return x+y;
}