知识库

怎么向setTimeout传递函数参数

经典问题:向setTimeout传递函数参数 也许你过去在setTimeout中传参数一直是这样
  setTimeout("pass(" + argu + ")",1000)
  这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function!!!
  看以下代码实现向里面的function 传参数
  

javascript 代码
 
  1. <script type="text/javascript">   
  2.   var _st = window.setTimeout;   
  3.   window.setTimeout = function(fRef, mDelay) {   
  4.   if(typeof fRef == 'function'){   
  5.    var argu = Array.prototype.slice.call(arguments,2);   
  6.    var f = (function(){ fRef.apply(null, argu); });   
  7.    return _st(f, mDelay);   
  8.   }   
  9.   return _st(fRef,mDelay);   
  10.   }   
  11.   function test(x){   
  12.   alert(x);   
  13.   }   
  14.   window.setTimeout(test,1000,'fason');   
  15.   </script>   

 

  怎样是不是很方便了代码其实就很简单,重载了一下window.setTimeout,用apply去回调前面的function.

 


 

本文关键词 / 怎么,传递,传递函数,函数,参数,setTimeout
微信扫一扫
官方微博

点击拨打免费服务热线 4008203730

展开