JavaScript 1.2 cũng cho phép các định nghĩa hàm được lồng trong các hàm khác. Tuy nhiên, có một hạn chế là các định nghĩa hàm có thể không xuất hiện trong vòng lặp hoặc điều kiện. Những hạn chế này đối với các định nghĩa hàm chỉ áp dụng cho các khai báo hàm với câu lệnh hàm.
Ví dụ
Bạn có thể thử chạy ví dụ sau để tìm hiểu cách triển khai các hàm lồng nhau
Bản trình diễn trực tiếp
<html> <head> <script> <!-- functionhypotenuse(a,b) { functionsquare(x){returnx*x;} returnMath.sqrt(square(a)+square(b)); } functionsecondFunction() { varresult; result=hypotenuse(1,2); document.write(result ); } /--> </script> </head> <body> <p>Clickthe following button to call the function</p> <form> <inputtype="button"onclick="secondFunction()"value="CallFunction"> </form> </body> </html>