/***********************************
*Author:Java619
*Time:2006-08
************************************/
也许你过去在setTimeout中传参数一直是这样
setTimeout("pass(" + argu + ")",1000)
这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function
下面举个实例:
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
>
<
HTML
>
<
HEAD
>
<
TITLE
>
向setTimeout传递函数参数
</
TITLE
>
</
HEAD
>

<
script
type
="text/javascript"
>
...
var _st = window.setTimeout;

window.setTimeout = function(fRef, mDelay) ...{

if(typeof fRef == 'function')...{
var argu = Array.prototype.slice.call(arguments,2);

var f = (function()...{ fRef.apply(null, argu); });
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}


function hello(x,y)...{
alert(x+" "+y);
}
window.setTimeout(hello,1000,'Hello','Ceun');
</
script
>
<
BODY
>

</
BODY
>
</
HTML
>
现在向setTimeout中传递带参数的函数是不是方便多了,其实就是重载了下window.setTimeout
用apply去回调前面的函数。