经典问题:向setTimeout传递函数参数

来源:互联网 发布:双十一是天猫还是淘宝 编辑:程序博客网 时间:2024/04/30 15:40
 经典问题:向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.
原创粉丝点击