原文链接:http://blog.163.com/leijiangjiahe@126/blog/static/121546792009713112844520/
window.setTimeout 方法是用来延迟执行某段函数(方法)的。但他对调用指定的方法并传参寸在一定缺陷。一般直接传参,只能传入字符传之类的参数,但对于Object类型的就无法直接传入,我的方法就是 重写window.setTimeout方法,利用apply回掉,进行传参,具体如下:
<script type="text/javas
var _st = window.setTimeout;
//fRef 是test函数,mDelay是时间
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
alert("argu "+argu);
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');
</script>
非常好用~
本文介绍了一种改进后的window.setTimeout方法,该方法通过使用apply回调解决了原始方法在传递Object类型参数时存在的局限性。

1807

被折叠的 条评论
为什么被折叠?



