javascript之嵌套函数使用方法

  作者:bea

在javascript中允许使用嵌套函数: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>嵌套函数</title> <script type="text/javascript"> function fun1(){ function fun2(){ var a=50;
在javascript中允许使用嵌套函数:



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>嵌套函数</title>
<script type="text/javascript">
function fun1(){
function fun2(){
var a=50;
var b=a+5;
return a+b;
}
var a=900;
var b=Math.sqrt(a);
return b+fun2();
}
</script>
</head>
<body>
<div id="main">
<script type="text/javascript">
document.write("函数的返回值为:"+fun1());
</script>
</div>
</body>
</html>




[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);
}
}


如例三,只要我们在嵌套函数中确定了二个把柄,放在哪里没关系都可以实现函数的嵌套,显然这样写没有例一那么好,是这样的。


有用  |  无用

猜你喜欢