请按ctrl+D把本页加入收藏夹
>> 网站建设 >> 您的位置    
文章内容
07-05-28 01:19:34

经典问题向setTimeout传递函数参数-建站心得-

       
 


>>经典问题向setTimeout传递函数参数<< 也许你过去在setTimeout中传参数一直是这样 setTimeout("pass(" + argu + ")",1000) 这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function!!! 看以下代码实现向里面的function 传参数 <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. 还没有用过apply,call的可以去查资料,发现版本不够的看我低版本的实现方法http://blog.csdn.net/fason/archive/2004/07/30/apply_call.aspx 另外需要知道的是,NS环境下,后面的参数确实是来传给前面的函数的,IE烂,没有实现~~~~~~~~~~~~~  

 
 
   
 

 
 
便民工具箱
 
最新文章