一、无参数时
1)过5秒弹窗xxxxxx
function time(){
alert('xxxxxxxxxxxxxxxxxxx');
}
setTimeout(time,5000);
2)立即弹窗xxxxxxxx,然后报错:Error: useless setTimeout call (missing quotes around argument?)
function time(){
alert('xxxxxxxxxxxxxxxxxxx');
}
setTimeout(time(),5000);
3)过5秒弹窗xxxxxx
function time(){
alert('xxxxxxxxxxxxxxxxxxx');
}
setTimeout('time()',5000);
二、传递参数时
1)过五秒弹窗5
function time(val){
console.log(val++);
setTimeout('time('+val+')',3000);
}
time(5);
2)由于setTimeout函数内置eval函数,1)不规范,下面使用闭包
function time(val){
console.log(val++);
setTimeout(function(){time(val)},3000);
}
time(5);
3)如果更复杂的情况,循环中变量不会覆盖
function time(val){
console.log(val++);
}
for(var i=0;i<len;i++){
//.....
setTimeout('(function(){time(val)})()',5000);
time(5);}
}
注:测试环境FF下
转载请注明出处:始终坚信分享能提高自己、成就他人,I‘m Ben, 一直在路上,从未敢怠慢。
本文深入探讨JavaScript中setTimeout函数的使用方法,包括无参数情况下的弹窗操作及错误处理,以及传递参数时的闭包应用。通过具体实例展示如何避免常见的编程陷阱,并介绍闭包在解决定时器参数传递问题上的优势。
1079

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



