发布于 2015-07-31 15:16:52 | 273 次阅读 | 评论: 0 | 来源: 网络整理
在JavaScript1.2之前,函数定义是只允许在顶层全局代码,但1.2的JavaScript可以嵌套函数定义其他函数中也是可以的。
仍然存在的函数定义可以循环或条件之内不会出现限制。在函数定义这些限制只适用于函数声明与函数语句。
正如我们将在下一章再讨论,函数文本(在JavaScript1.2引入的另一个功能)可能出现在任何JavaScript表达式,这意味着它们可以出现在if else语句内。
下面就是我们两个嵌套函数的例子。这可能会有点混乱,但它的工作原理完全正常:
<script type="text/javascript">
<!--
function hypotenuse(a, b) {
function square(x) { return x*x; }
return Math.sqrt(square(a) + square(b));
}
//-->
</script>
注:在这里,我们使用的是从数学类函数sqrt。以后会看到它在讨论对象的章节。
现在,可以调用通常的方式调用这一函数如下:
<script type="text/javascript">
<!--
hypotenuse(1, 2); // This will produce 2.2360
//-->
</script>