在编写javascript代码脚本时,经常对函数进行自调用,也就是函数递归调用。
javascript允许函数递归,但是有其自己的递归原则。
例如:
<mce:script type="text/javascript">
<!--
var type=6;
function current(a)
{
var i=0;
if(a==undefined)
{
current(1);
return;
}
if(document.getelementbyid("cursors"+a)==null&&type>a)
{
current(a*2);
return;
}
var value=1;
while(type>=value)
{
obj=document.getelementbyid("item"+value);
if(obj!=null)obj.classname='hidden';
obj=document.getelementbyid("cursors"+value);
if(obj!=null)obj.classname='behind';
i++;
value=math.pow(2,i);
}
if((obj=document.getelementbyid("item"+a))!=null)obj.classname='show';
if((obj=document.getelementbyid("cursors"+a))!=null)obj.classname='current';
}
// -->
</mce:script>
代码说明:
1、current函数,函数体内嵌套了递归,这里是单项运行,即递归一次后便用return结束运行。
2、也可以递归完后继续运行,javascript不排斥这个。
3、使用递归可以让代码看起来更完整,注意做好测试,以免陷入死循环。