一、无参数时
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, 一直在路上,从未敢怠慢。