Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Eu entendi a função com parâmetros, porém fiquei com duvidas, acho eu, que conceituais.

Utilizando o exemplo dado pelo professor, foi criada a função "mostra" com o parâmetro "frase", mas qual é a mágica por trás do java que o faz entender que "frase" na verdade é Flávio tem 40 anos, Joaquim tem 21 anos, Barney tem 41 anos? Por favor, alguém consegue me ajudar a entender isso?

4 respostas
solução!

"Um parâmetro é uma variável definida no corpo do procedimento ou função que recebe um valor apenas quando o bloco é chamado" .. Digamos que a função é "O que fazer"... o parâmetro é "Como fazer"

Esse comportamento é comum em vários linguagens. Você tem uma função que dentro dela há uma lacuna. Se há uma lacuna, não faz sentido chamá-la sem preencher essa lacuna. Mas por que então há essa lacuna? É porque isso evita de criarmos milhares de funções com código semelhante. Se há uma lacuna, quem chamou a função passa o valor dessa lacuna de acordo com a situação.

Dentro de uma função, os valores dessas lacunas são passados através de parâmetros. Quando temos:

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

Quando chamamos a função assim:

mostra('Olá, esta é minha frase!');

Por debaixo dos panos, sem você ver, é como se o javascript fizesse isso dentro da sua função:

// frase é o parâmetro que recebe o texto que você passou para a função quando a chamou
var frase = 'Olá, esta é minha frase';
document.write(frase);

Certo? É que em JavaScript, os parâmetros de uma função não recebem var antes de seus nomes, mas não deixam de ser variáveis.

Consegui ajudar ou compliquei mais ainda?

Beleza Jefferson?

Tentarei fazer uma analogia.

Você chega em um restaurante e imaginemos o garçom sendo o browser e a cozinha sendo o JavaScript. Você solicita um suco; ele te pergunta qual o sabor e você responde: "morango". Ele pergunta: "com água, leite ou creme?". Você responde: "leite".

Então ele vai à cozinha e solicita a função fazSuco. Esta função aguarda dois parâmetros: o sabor e o liquido. Então ele deve chamá-la: fazSuco(sabor, liquido).

Então ele chama: fazSuco(morango,leite).

Digamos que o corpo da função seria:

function fazSuco(sabor, liquido){
    var polpa = sabor;
    var diluente = liquido;
    suco = misturaInsumos(polpa * diluente);
    return suco;
}

Digamos que na função acima o misturaInsumos seria algo padrão. A cozinha (sendo o JavaScript) tem bibliotecas para ajudar, (misturaInsumos), (fritaAlgo), (cozinhaAlgo), etc...

Não quero complicar, mas uma função pode, inclusive, verificar se os parâmetros recebidos (no caso acima a polpa e o leite) estão de acordo. (no caso acima seria se a quantidade esta ok, senão o "return" pode ser um erro. Ai tem os tipos de erro de cada função. Por exemplo: "quantidade insuficiente de leite" e por ai vai).

Em resumo... a "mágica" é a função quem faz. Você tem que escrever a mágica.

Obrigado pela ajuda Raul, professor Flavio e Leonardo, com as analogias de vocês consegui compreender melhor a "mágica".