Funções Aninhadas em JavaScript
Suponha que temos uma função que aceita dois números como parâmetro e retorna a soma dos quadrados desses números:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // exibirá 13 (resultado de 2 * 2 + 3 * 3)
Vamos isolar a operação de elevar ao quadrado
em uma função auxiliar square:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // exibirá 13
Suponha que temos certeza de que a função square
será usada apenas dentro da função func
e em nenhum outro lugar.
Nesse caso, seria conveniente garantir que ninguém a use acidentalmente (você mesmo ou outro programador trabalhando com você).
JavaScript tem uma solução elegante: podemos
colocar nossa função auxiliar square
dentro de func. Dessa forma,
nossa função auxiliar só estará acessível
dentro de func, e não fora dela.
Vamos fazer isso:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // exibirá 13
Tentar chamar square de fora de func
resultará em um erro:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! causará um erro
Faça uma função func que receba
dois números como parâmetros e retorne a soma
do quadrado do primeiro número com o cubo do segundo número.
Faça para isso uma função auxiliar
square, que eleva um número ao quadrado,
e uma função auxiliar cube, que eleva
um número ao cubo.