JavaScript 1.2 cho phép định nghĩa hàm bên trong các hàm khác. Tuy nhiên, vẫn có một hạn chế: các định nghĩa hàm không được xuất hiện bên trong vòng lặp hoặc câu lệnh điều kiện. Những hạn chế này chỉ áp dụng cho các khai báo hàm sử dụng câu lệnh function.
Ví dụ
Bạn có thể chạy đoạn mã sau để tìm hiểu cách triển khai hàm lồng nhau trong JavaScript:
<html>
<head>
<script>
function hypotenuse(a, b) {
function square(x) { return x * x; }
return Math.sqrt(square(a) + square(b));
}
function secondFunction() {
var result;
result = hypotenuse(3, 4);
document.write(result);
}
</script>
</head>
<body>
<p>Nhấn nút sau để gọi hàm</p>
<form>
<input type="button" onclick="secondFunction()" value="Tìm cạnh huyền">
</form>
</body>
</html>