日期:2014-05-16  浏览次数:20381 次

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)下面所有代码不执行了。
}
}
}