setTimeout的使用疑问
JScript code
<script>
var a=-1;
function demo(b){
a++;
if(a<b.length){
alert(b[a]);
setTimeout(demo,20);
}
}
demo([1,2,3]);//最后只弹出1,其他的不弹出,是什么原因?
</script>
求指点谢谢。。。。。
------解决方案--------------------
这很正常呀,你看看呀:
demo([1,2,3])-->
function demo(b){
a++;//开始是a=-1 现在是a=0
if(a<b.length){//b=[1,2,3] b.length=2;条件成立
alert(b[a]);//b[0]=1 弹出1
setTimeout(demo,20);//重点是这里,你调用的是demo()没参数:{
//现在是进入function demo(b); b=undefind为空 而a++后是a=1 if(a<b.length)条件不成立(1<0)下面所有代码不执行了。
}
}
}