在javascript中允许使用嵌套函数: 记住这名话: 嵌套实际是要实现一种循环,是循环就有双个把柄让我们抓:一个是终止条件,一个是增量。
嵌套函数和普通函数有一点不同: 既然是嵌套函数,就是把自身当作值运用到函数体内。这就要求函数必须有一个返回值。就要用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); } }
如例三,只要我们在嵌套函数中确定了二个把柄,放在哪里没关系都可以实现函数的嵌套,显然这样写没有例一那么好,是这样的。 |