为什么不直接用递归呢,像这样
<script>
var a=50
abc(10)
alert(a)
abc(-10)
alert(a)
function abc(num){
    a+=num;
    if (num >0){if(a<100)abc(num)}
    else{if(a>0)abc(num)}
}
</script>
用setTimeout是不是实现某种特殊的效果?

解决方案 »

  1.   

    對﹐就是實現一種移動的效果﹐當然也不一定非要用setTimeout﹐但如果用其他方法能做到一個時間差的效果也可以
      

  2.   

    <script>
    var a=50
    abc(10,"alert(a);abc(-10,'alert(a)')")function abc(num,func){
        a+=num;
        if ((num>0&&a<100)||(num<0&&a>0))
                setTimeout("abc("+num+",\""+func+"\")",20)
        else
                eval(func)
    }
    </script>
      

  3.   

    试试看<script>
    var a=50,num=10;
    abc();
    function abc(){
        a+=num;
        if (!(a<100&&a>0)){num=-num;alert(a);}
        setTimeout(abc,20)
    }
    </script>