给定时器settimeout、setInterval调用传接参数
使window.setTimeout/window.setInterval执行带参数的函数的方式(以setTimeout为例):
1.使用字符串形式.
如:window.setTimeout("alert('ok')",1000);
或
var msg = "ok";
window.setTimeout("alertMsg(msg)", 1000);
function alertMsg(pmsg) {
alert(pmsg);
}
2.借助嵌套匿名函数.
如:window.setTimeout(helpFn("ok"), 1000);
function helpFn(pmsg) { return function() { alert(pmsg); } }
3.修改原 window.setTimeout
如:
//*=============================================================
//* 功能: 修改 window.setTimeout,使之可以传递参数和对象参数
//* 方法: setTimeout(回调函数,时间,参数1,,参数n) 参数可为对象:如数组等
//*=============================================================
window.setTimeout = function(callback, timeout, param) {
var args = Array.prototype.slice.call(arguments, 2);
setTimeout(function() { callback.apply(null, args); }, timeout)
}
window.setTimeout(alertMsg, 1000, "ok");
function alertMsg(pmsg) {alert(pmsg);}