JavaScript - funções aninhadas
Antes do JavaScript 1.2, a definição de função era permitida apenas no código global de nível superior, mas o JavaScript 1.2 também permite que as definições de função sejam aninhadas em outras funções. Ainda assim, há uma restrição de que as definições de função podem não aparecer em loops ou condicionais. Essas restrições nas definições de função se aplicam apenas a declarações de função com a instrução de função.
Como discutiremos mais tarde no próximo capítulo, literais de função (outro recurso introduzido no JavaScript 1.2) podem aparecer dentro de qualquer expressão JavaScript, o que significa que eles podem aparecer dentro if e outras declarações.
Exemplo
Experimente o exemplo a seguir para aprender como implementar funções aninhadas.
<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>