读书人

给定时器settimeout、setInterval调用

发布时间: 2013-01-26 13:47:02 作者: rapoo

给定时器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);}

读书人网 >Web前端

热点推荐