posts - 0,  comments - 3,  trackbacks - 0
 

也许你过去在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.

posted on 2007-07-01 16:04 李桢 阅读(276) 评论(0)  编辑  收藏 所属分类: javascript
<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

留言簿(1)

文章分类

文章档案

搜索

  •  

最新评论