JavaScript - Fonctions imbriquées

Avant JavaScript 1.2, la définition de fonction n'était autorisée que dans le code global de niveau supérieur, mais JavaScript 1.2 permet également d'imbriquer les définitions de fonction dans d'autres fonctions. Il existe toujours une restriction selon laquelle les définitions de fonction peuvent ne pas apparaître dans les boucles ou les conditions. Ces restrictions sur les définitions de fonction s'appliquent uniquement aux déclarations de fonction avec l'instruction de fonction.

Comme nous le verrons plus tard dans le chapitre suivant, les littéraux de fonction (une autre fonctionnalité introduite dans JavaScript 1.2) peuvent apparaître dans n'importe quelle expression JavaScript, ce qui signifie qu'ils peuvent apparaître dans if et autres déclarations.

Exemple

Essayez l'exemple suivant pour savoir comment implémenter des fonctions imbriquées.

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

Production