當局部函數遞歸調用自身時,由於定義函數時是先建立函數、而後指定局部變量名,所以在局部函數體中並不知道自已的名字是一個局部變量,這樣致使局部函數在函數體內部不認識自已的名字。函數
例如:code
var 遞歸 = function ( 計數 ){ if ( 計數 <= 0 ) return 計數 else return 遞歸( 計數-1 ) // 出錯了找不到函數名字"遞歸" } //調用遞歸函數 遞歸( 5 )
解決辦法: 遞歸
//在定義函數之前聲明局部變量名字 var 遞歸; //而後再定義函數體 遞歸 = function ( 計數 ){ if ( 計數 <= 0 ) return 計數 else return 遞歸( 計數-1 ) // 出錯了找不到函數名字"遞歸" } io.open() //調用遞歸函數 io.print( 遞歸( 5 ) )