21/12
2009

Função é uma porção de código de um programa maior que desempenha uma tarefa específica e é relativamente independente do resto do código. Geralmente uma função tem um nome, recebe argumentos, realiza sua tarefa e finalmente retorna um resultado.

1
2
3
4
// exemplo-1
function a() {
    alert('Olá, sou a função.');
}

O fragmento de código acima não realiza nenhuma tarefa. A função de nome a foi apenas declarada e está pronta para ser utilizada. Para que algo aconteca precisamos invocar, chamar a função. Isso por ser feito da seguinte maneira:

5
a();

Se adicionarmos a linha acima ao nosso código, um alerta aparecerá no navegador exibindo a mensagem “Olá, sou uma função”.

E para que servem as funções? (argumentos)

Quando um programa de alguma complexidade maior é desenvolvido, problemas recorrentes tornam-se evidentes. Tarefas repetitivas que podem ser identificadas, isoladas e codificadas em funções. Vamos alterar nosso código para o seguinte:

1
2
3
4
// exemplo-2
function a(texto) {
    alert(texto);
}

A função a agora recebe o que é chamado de argumento. Este argumento tem um nome: texto. Novamente, nosso código é inútil enquando não for acionado.

5
a('Sou um exemplo de texto.');

Mais uma vez um alerta pipoca na tela no navegador, desta vez com a mensagem “Sou um exemplo de texto”. Perceba como isso é importante. Nossa função agora comporta-se de maneira diferente dependendo do argumento que lhe é passado. Nessa altura nossa função não é nem um pouco útil. Ela nada mais é do que uma espécie de “atalho” para um outra função: alert. Ambas desempenham a mesma tarefa. Vamos então modificar a função para que ela realize algo um pouco diferente:

1
2
3
4
5
// exemplo-3
function a(texto) {
    alert('O argumento passado foi: ' + texto);
}
a('um exemplo de texto.');

O resultado do exemplo 3 é: O argumento passado foi um exemplo de texto. A função continua utilizando alert, mas agora ela realiza uma tarefa um pouco mais complexa.

É possível afirmar então que funções são pedaços de código que desempenham tarefas muito parecidas, mas de maneira um pouco diferente dependendo do jeito que as acionamos. O que faz a função se comportar de forma diferente é o contexto. O contexto, nos exemplos acima, é dado pelo argumento que é pasado no momento da invocação da função.

Sobre os retornos de funções

Como já foi dito, funções podem ter nomes, receber argumentos, desempenhar uma tarefa e retornar algum resultado.

1
2
3
4
5
// exemplo-4
function a(texto) {
    return 'O argumento passado foi: ' + texto;
}
alert(a('um exemplo de texto.'));

Este exemplo se comporta de maneira igual ao anterior. Alert é chamada e recebe como argumento o retorno da função “a”. Como “a” está dentro de “alert” ela é executada primeiro. Desta forma, quando alert é chamada já temos o resultado de “a” disponível, que é passado como argumento para “alert”.

É possível pensar na sequência de operações da seguinte forma: “alert” é invocada, invoca “a”, que retorna um resultado, que é passado como argumento o argumento de “alert”.

É muito importante entender que o retorno não somente retorna um resultado. Ele também pára a execução da função.

1
2
3
4
5
6
// exemplo-5
function a(texto) {
    return;
    alert('O argumento passado foi: ');
}
a('um exemplo de texto.');

Neste caso nada acontece no navegador. Na linha 3 nossa função, invocada na linha 5, não retorna nenhum valor. Ou seja, ela para de ser executada. Esta função é inútil porque ele não desempenha nenhuma tarefa. Em nenhuma circunstância chegaremos na linha 4. É um exemplo besta mas serve para ilustrar que retornos podem ou não retornar um valor, mas sempre interrompem a execução da função.

1 comentário até agora

Comente!
  1. [...] muito explorada pelos programadores. Se você ainda não esta familiarizado com o uso de funções, leia este post primeiro. Vamos então aos [...]

Get Adobe Flash playerPlugin by wpburn.com wordpress themes