知识库
Web开发技术
怎么向setTimeout传递函数参数
时间 / 2011年11月28日 信息来源 / 本站原创 作者 / 佚名 点击 / 次
经典问题:向setTimeout传递函数参数 也许你过去在setTimeout中传参数一直是这样
setTimeout("pass(" + argu + ")",1000)
这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function!!!
看以下代码实现向里面的function 传参数
javascript 代码
- <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 test(x){
- alert(x);
- }
- window.setTimeout(test,1000,'fason');
- </script>
怎样是不是很方便了代码其实就很简单,重载了一下window.setTimeout,用apply去回调前面的function.
本文关键词 / 怎么,传递,传递函数,函数,参数,setTimeout