在编写JAVASCRIPT代码过程中, 有时候会经常对函数进行自调用, 也就是函数递归,
JAVASCRIPT允许函数递归, 但是有其自己的递归原则,
Klartext in Zwischenablage anzeigen und drucken?
<mce:script type="text/javascript"><!--
Var-Typ=6;
Funktion Strom(a)
{
var i=0;
if(a==undefiniert)
{
aktuell(1);
zurückkehren;
}
if(document.getElementById("cursors"+a)==null&&type>a)
{
aktuell(a*2);
zurückkehren;
}
var-Wert=1;
while(Typ>=Wert)
{
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>
<mce:script type="text/javascript"><!--
Var-Typ=6;
Funktion Strom(a)
{
var i=0;
if(a==undefiniert)
{
aktuell(1);
zurückkehren;
}
if(document.getElementById("cursors"+a)==null&&type>a)
{
aktuell(a*2);
zurückkehren;
}
var-Wert=1;
while(Typ>=Wert)
{
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>
请看current函数, 函数体内嵌套了递归, 这里是单项运行, 即递归一次后便用return结束运行,
当然你也可以递归完后继续运行, JAVASCRIPT不排斥这个!
使用递归可以让你的代码看起来更完整,但是千万小心不能让他陷入死循环