Porque não posso deixar a função mostra dentro da função calculaImc? Não entendi essa parte.
Porque não posso deixar a função mostra dentro da função calculaImc? Não entendi essa parte.
Oi João, tudo bem?
A função calculaImc()
foi criada com o objetivo de realizar apenas o cálculo do IMC. Por isso, ela recebe a altura e o peso como parâmetros e retorna o resultado desse cálculo.
A ideia de manter a função mostra()
fora da calculaImc()
é para que possamos ter mais flexibilidade sobre como e onde queremos exibir os resultados.
Por exemplo, se colocássemos a função mostra()
dentro da calculaImc()
, sempre que chamássemos a calculaImc()
ela faria o cálculo e já exibiria o resultado na tela. Mas e se quiséssemos, por exemplo, somar dois IMCs antes de exibir o resultado? Ou se quiséssemos enviar esse resultado por e-mail, ou salvar em um banco de dados? Teríamos que alterar a função calculaImc()
para cada uma dessas situações.
Por outro lado, mantendo a função mostra()
separada, podemos usar o resultado da calculaImc()
da maneira que preferirmos. No exemplo do curso, primeiro calculamos os IMCs, depois somamos e só então exibimos o resultado:
var imcFlavio = calculaImc(1.71, 73);
var imcAmigo = calculaImc(1.72, 68);
var totalImc = imcFlavio + imcAmigo;
document.write("A soma dos imc's é " + totalImc);
Aqui, a função calculaImc()
está apenas fazendo o cálculo e retornando o resultado. Quem decide o que fazer com esse resultado é o código que chamou a função.
Um abraço e bons estudos.