window.setTimeout 方法是用来延迟执行某段函数(方法)的。但它在调用指定的方法并传参时寸在一定缺陷。
无限循环
代码如下 |
|
<div id="num"></div>
<script type="text/javascript">
window.onload=function a()
{
var a=0;
function addNumber()
{
a=a+1;
document.getElementById("num").innerHTML=a;
setTimeout(addNumber,1000);
}
addNumber();
}
</script>
|
setTimeout函数可以传参/传值
代码如下 |
|
var _st = window.setTimeout;
//fRef 是test函数,mDelay是时间
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 test(x,y,z){
alert(x+" "+y+" "+z);
} |
第一个参数是要执行的函数,第二个参数是间隔时间,后面的参数是要传入的值
代码如下 |
|
window.setTimeout(test,1000,document.getElementById("d"),'abc','123');
|
更多相关阅读参考《setTimeout和setInterval的使用》《JavaScript 中 setTimeout()的用法》
|