经典问题:向setTimeout传递函数参数
来源:互联网 发布:普里高津 知乎 编辑:程序博客网 时间:2024/04/30 13:25
也许你过去在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烂,没有实现~~~~~~~~~~~~~
- 经典问题:向setTimeout传递函数参数
- [转载]经典问题:向setTimeout传递函数参数
- 经典问题:向setTimeout传递函数参数
- 向setTimeout传递函数参数
- 向setTimeout传递函数参数
- 向setTimeout传递函数参数
- 用指针传递函数参数的问题
- setTimeout传参数问题
- setTimeout传参数问题
- setTimeout传参数问题
- 怎么向createthread或begincreate传递函数的参数值?
- 如何向 setTimeout 、 setInterval 传递参数
- 关于setTimeOut传参数问题
- 用引用传递函数参数
- javascript 中传递函数参数
- js传递函数作为参数
- js传递函数作为参数
- Python传递函数参数
- Joke
- 在Web页内显示Binary(位图)的组件
- 可能现在比较多的都在收藏夹里
- 陈文灯答考生问:谈考研数学的复习方法[转帖]
- [转帖]05年考研数学辅导书推荐
- 经典问题:向setTimeout传递函数参数
- 世界杀毒软件排名
- 双螺旋的发现者之一克里克去世了
- 《神秘河》:自是人生长恨水长东
- OO in C: C语言中的类模拟和多态,继承
- PHP中的加密功能
- subversion的Branches和Tags居然是用目录实现的,和CVS有很大不同.
- 使用VB创建ASP服务器端组件
- Apache Ant 101:使Java项目生成易如反掌