位置:首頁 > Web開發 > Javascript教學 > JavaScript嵌套函數

JavaScript嵌套函數

在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>