在javascript中允許使用嵌套函數:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
記住這名話:
嵌套實際是要實現一種循環,是循環就有雙個把柄讓我們抓:一個是終止條件,一個是增量。
嵌套函數和普通函數有一點不同:
既然是嵌套函數,就是把自身當作值運用到函數體內。這就要求函數必須有一個返回值。就要用return語句。
舉例分析:
例一:
復制代碼 代碼如下:
function a(x){
if(x<=1) return 1;
else return x*a(x-1);
}
例一是一個嵌套函數,讓我們來找一下二個把柄:if(x<=1) return 1;這是終止條件,當x<=1時終止,else return x*a(x-1);這是增量,每次嵌套調用函數a()時參數都會減1。
所以這個例子也可以像例二中那樣轉換成一個循環體。
例二:
復制代碼 代碼如下:
function a(x){
if(x<=1) return 1;
else{
var m=1;
for(var i=2;i<=x;i++){
m*=i;
}
return m;
}
}
如例二所示,嵌套函數就是要實現這樣的循環。
例三:
復制代碼 代碼如下:
function a(x){
if(x<=1) return 1;
else{
x--;
return (x+1)*a(x);
}
}
如例三,只要我們在嵌套函數中確定了二個把柄,放在哪裡沒關系都可以實現函數的嵌套,顯然這樣寫沒有例一那麼好,是這樣的。