局部函數的遞歸問題

當局部函數遞歸調用自身時,由於定義函數時是先建立函數、而後指定局部變量名,所以在局部函數體中並不知道自已的名字是一個局部變量,這樣致使局部函數在函數體內部不認識自已的名字。函數


例如:code

 var 遞歸 = function ( 計數 ){
if (  計數 <= 0   )
return  計數 
else  
return 遞歸(  計數-1 )   // 出錯了找不到函數名字"遞歸"
}
//調用遞歸函數
遞歸( 5 )

解決辦法: 遞歸

//在定義函數之前聲明局部變量名字
var 遞歸;
//而後再定義函數體
遞歸 = function ( 計數 ){
if (  計數 <= 0   )
return  計數 
else  
return 遞歸(  計數-1 )   // 出錯了找不到函數名字"遞歸"
}
io.open()
//調用遞歸函數
io.print( 遞歸( 5 )   )
相關文章
相關標籤/搜索