Funções

--

Parte fundamental da otimização de trabalho no JavaScript, as funções são blocos de códigos criados para desempenhar uma tarefa. Pensemos no texto anterior sobre Objetos e Vetores, o array da turmaA. Está chegando o final do trimestre e você precisa da média dos alunos, é muito mais simples criar um mecanismo, no caso do JavaScript uma Função, do que calcular na mão cada aluno né?

Então primeiro você precisa definir a função. Você faz isso através da chave function, que deve vir acompanhada depois do nome da função, no nosso exemplo calculaMedia, se sua função exigir algum parâmetro você deve declará-lo dentro de parênteses logo ao lado do nome da função, no nosso exemplo alunos, e entre chaves você irá declarar a função, lembrando que dependendo do que sua função executar, você precisa levar o resultado dela para fora da função e você fará isso retornando a função, através de um return ao fim de sua função.

Um modo de pensar o parâmetro é em forma de variável. Ao criar a função você define o parâmetro e quando você chama a função, você define um novo valor para este parâmetro, que será o valor executado pela função.

Seguindo mais ou menos essa lógica, se você deseja calcular a média geral de história da turma sua função ficará assim:

function calculaMedia(alunos){

return media = (alunos[0].historia + alunos[1].historia + alunos[2].historia) / 3

}

Após a função declarada, você precisa executar a função em algum momento do seu código e isso é feito através do que se diz “chamar a função”, no caso do exemplo acima, abaixo da função você iria executar o seguinte código:

calculaMedia(turmaA)

Mas espera, o que faz aquele turmaA ali? Então, aquele é o parâmetro que você está definindo para a função. No caso, ele entrará no lugar da variável alunos ao executar a função, o que permite que você possa executar a função com outros arrays também.

Imagine que além da turmaA, você teria o array da turmaB, com uma outra lista de alunos, ao invés de ter que mudar várias linhas de código, você só precisa chamar a função novamente declarando a turmaB como parâmetro, da seguinte maneira:

calculaMedia(turmaB)

Com esses dois exemplos, vou tentar elucidar um pouco melhor a questão do parâmetro. Pense comigo o seguinte, a função leva o parâmetro alunos, porém quando ela é chamada, recebe o parâmetro turmaA, ou seja, o valor de alunos passa a ser turmaA, ai a função vai buscar lá no meu array turmaA, o objeto 0, que será o aluno Fulano, a nota dele em história, que foi 6, depois no objeto 1, que será o aluno Beltrano, a nota dele em história, que foi 9 e por fim, o objeto 2, que será o aluno Siclano, a nota dele em história, que foi 8.

Por que ele faria isso? Porque ao chamar a função declarando o parâmetro turmaA, substituindo o valor de alunos por turmaA, a função será executada como:

return media = (turmaA[0].historia + turmaA[1].historia + turmaA[2].historia) / 3

E caso seja declarado turmaB como parâmetro na hora de chamar a função, ela será executada como:

return media = (turmaB[0].historia + turmaB[1].historia + turmaB[2].historia) / 3

Em resumo do início sobre as inúmeras possibilidades que as funções criam para o seu código é isso. Espero que a leitura deste texto ajude te ajude a entender um pouco mais sobre funções, como a escrita dele me ajudou.

--

--