在日常的javascript编程中,有时会用到setTimeout()这个函数。 setTimeout()有两个参数,第一个是调用的函数,第二个是延时的时间长度。
function addContent(){
.........
}
//
setTimeout(“addContent()”,500);
在被调用的函数没有参数的情况下,使用起来很方便。如上所示可以轻松实现延时执行addContent()函数0.5秒的功能。 可是如果addContent()有参数,例如
function addContent(id){
.........
}
//延时不起作用
setTimeout(“addContent(id)”,500);
//延时也不起作用 setTimeout(addContent(id),500);
function addContent(id){
.........
}
//延时不起作用
setTimeout(“addContent(id)”,500);
//延时也不起作用
setTimeout(addContent(id),500);
这确实一个头疼的问题。
这里有一个勉强能解决的方案。
function addContent(id){
。。。
}
function _addContent(id){
return function(){
addContent(id);
}
}
setTimeout(_addContent(id),500);
如上所示,就搞定了。
本文探讨了JavaScript中setTimeout函数的使用技巧,特别是在需要传递参数给定时器触发的函数时的解决方案。通过创建一个包裹函数来成功地实现了参数传递。

被折叠的 条评论
为什么被折叠?



