JavaScript Nested Functions

优质
小牛编辑
133浏览
2023-12-01

在JavaScript 1.2之前,函数定义仅允许在顶级全局代码中使用,但JavaScript 1.2允许函数定义也嵌套在其他函数中。 仍存在一个限制,即函数定义可能不会出现在循环或条件中。 这些对函数定义的限制仅适用于函数声明的函数声明。

正如我们将在下一章稍后讨论的那样,函数文字(JavaScript 1.2中引入的另一个特性)可能出现在任何JavaScript表达式中,这意味着它们可以出现在if和其他语句中。

例子 (Example)

请尝试以下示例以了解如何实现嵌套函数。

<html>
   <head>
      <script type="text/javascript">
         <!--
            function hypotenuse(a, b) {
               function square(x) { return x*x; }
               return Math.sqrt(square(a) + square(b));
            }
            function secondFunction(){
               var result;
               result = hypotenuse(1,2);
               document.write ( result );
            }
         //-->
      </script>
   </head>
   <body>
      <p>Click the following button to call the function</p>
      <form>
         <input type="button" onclick="secondFunction()" value="Call Function">
      </form>
      <p>Use different parameters inside the function and then try...</p>
   </body>
</html>