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

这是递归吗,怎么没有得到理论的结果?

HTML code
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
</HEAD>
<script language=javascript>
var count=0;
function recursion()
{
       count++;
    //alert(count);
    if(count==3){
     return;
    }
       setTimeout("recursion()", 1000);
    //recursion();
       alert(count);
}
</script>
<BODY onLoad="recursion()">
</BODY></HTML>

如上代码,使用了setTimeOut函数后,这还是递归吗?
理论上如果是递归,应该alert的顺序是3,3,3,可现实确实1,2,3,该如何解释呢?

------解决方案--------------------
setTimeOut的作用是定时执行某方法
这样你实现的只是多次执行recursion
而不是recursion在执行时调用自身
------解决方案--------------------
setTimeOut是定时执行,不是递归。