4
respostas

como o retorn ira identificar o peso e altura se não esta sendo declarado em nenhum momento?

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
    }

    function calculaImc(altura, peso) {

        return peso / ( altura * altura );
    }
</script>
4 respostas

Boa tarde Adriano,

Nesse trecho de código que você compartilhou, calculaImc é uma função, e recebe altura e peso como parâmetros. Esses parâmetros já são como declaração para a função, ou seja, ela vai saber executar o código da linha do return.

No código que chama essa função, você provavelmente terá algo assim:

Mais simples:

calculaImc(70, 1.65);

Ou

Com declaração de variáveis antes: =

var peso = 70;
var altura = 1.65;
calculaImc(peso, altura);

Em qualquer um dos casos acima, a função calculaImc vai conseguir realizar seu processamento e devolver o resultado.

Ficou claro? Abraços.

Então quer dizer que a função mostra pode declarar um valor, para otimizar a aplicação? E o return entenderá ?

O que eu quis dizer na explicação é, uma função funciona na seguinte estrutura:

function nomeDaFuncao(parametro1, parametro2, parametroN...) {
    //corpo da função
}

Uma função pode ter nenhum, um ou vários parâmetros.

Um parâmetro é um valor que ela defini que seja passado quando for chamada.

Então em uma função qualquer:

function mostra(frase) {
    document.write(frase);
}

Quem chamar a função mostra, precisa passar como parâmetro um valor para ela, que ela usará com uma referência chamada frase.

O valor que será passado fica totalmente ao cargo de quem está realizando a chamada. Vamos supor que uma outra função xyz() faz a chamada para mostra, ela terá que fazer algo assim:

function xyz() {
    mostra('Texto que eu quero exibir de exemplo');
}

OU

function xyz() {
    var texto = 'Texto que eu quero exibir de exemplo';
    mostra(texto);
}

Não é uma questão de otimização entende, para chamar mostra, é necessário fornecer o valor que ela espera por parâmetro. Se o valor vai ser passado direto na chamada como no exemplo 1, ou se vai ser passado uma outra variável contendo o valor, que dentro de mostra será tratada como frase, como no exemplo 2, não importa. O que importa, é que esse valor teve que ser passado, para que mostra pudesse fazer o que ela precisa fazer.

Consegui explicar melhor?

Abraço.

Oi Adriano se na hora que a função calculaImc for chamada forem passados os parametros necessários que ela precisa para executar ela vai funcionar a declaracao return indica o que será retornado para quem chamou a funcão que valor seria interessante eu retornar na função calculaImc ? Não seria legal se eu retornasse o peso não é seria assim:

function calculaImc(altura, peso) {
        return peso;
    }

Tampouco se eu retornar a altura pois eu já tenho o peso e a altura o que eu quero é o imc por isso fazemos:

function calculaImc(altura, peso) {

        return peso / ( altura * altura );
    }

Que retornara para quem chamou o resultado do calculo do imc.

Espero ter ajudado e bons estudos.