Oi Camila, tudo bem com você?
A função mostra(frase) que está fora da função calculaIMC() é a implementação dela, ou seja, a função em si. Enquanto que o mostra("O IMC calculado é: " + Math.round (imc)) que está dentro do calculaIMC() é um chamado à função original que foi implementada lá fora. Mas o que isso quer dizer?
Vamos pensar primeiro sobre o que é uma função. Bom, uma função nada mais é que um conjunto de comandos que, juntos, realizam uma tarefa específica. Então, no caso domostra(), o que acontece nessa função? Bom...
- Primeiro, ela recebe uma frase:
function mostra(frase) {
- Depois imprime ela na página:
document.write (frase);
- Por fim, pula uma linha:
pulo();
Para que, assim, seja formada a função mostra():
function mostra(frase) {
document.write (frase);
pulo();
}
Pois bem... dessa forma, toda vez que quisermos executar esses comandos, tudo o que precisamos fazer é chamar a função mostra() de qualquer lugar, passando uma frase dentro dos parênteses. Assim como a função calculaIMC() fez dentro dela:
mostra ("O IMC calculado é: " + Math.round (imc));
Veja então que criamos a função mostra() que executa uma série de comandos e toda vez que quisermos executá-los em alguma parte do nosso código tudo o que precisamos fazer é chamá-la da forma como vimos aí em cima!
Finalizando com outro exemplo, veja que a função mostra() faz a mesma coisa que a função calculaIMC(), porém com a função pulo(). Perceba que ao invés de escrevermos mostra() dessa forma:
function mostra(frase) {
document.write (frase);
document.write ("<br><br>");
}
Optamos por chamar a função pulo() no lugar, pois ela faz justamente o que nós queremos:
function mostra(frase) {
document.write (frase);
pulo();
}
function pulo() {
document.write ("<br><br>");
}
Espero ter ajudado. Se ficou qualquer dúvida é só avisar!
Bons estudos!!