本帖最后由 h123hu 于 2012-09-24 10:23:46 编辑

解决方案 »

  1.   

    var a=-1;
    var aaa = [1,2,3];
    function demo(){
        a++;
        if(a<aaa.length){
            alert(aaa[a]);
            setTimeout("demo()",200);//需要加引号的
        }
    }
      

  2.   

    这很正常呀,你看看呀:
    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)下面所有代码不执行了。
    }

            }    
        }
      

  3.   

    var a=-1;
    function demo(b){
    a++;
    if(a<b.length){
    alert(b[a]);
    setTimeout(demo([1,2,3]),20);//楼上已经说过了。
    }
    }
    demo([1,2,3]);