Parâmetros das funções
Vemos o que são os parâmetros em chamadas à funções e como utilizá-los.
As estruturas que vimos anteriormente sobre funções não são as únicas que devemos aprender para manejá-las em toda a sua potência. As funções também têm uma entrada e uma saída, que se podem utilizar para receber e devolver dados.
Parâmetros
Os parâmetros se usam para mandar valores à função, com os quais ela trabalhará para realizar as ações. São os valores de entrada que recebem uma função. Por exemplo, uma função que realizasse uma soma de dois números teria como parâmetros a esses dois números. Os dois números são a entrada, assim como a saída seria o resultado, mais isso será visto mais tarde.
Vejamos um exemplo anterior no qual criávamos uma função para mostrar uma mensagem de boas vindas à página web, mas que agora passaremos um parâmetro que vai conter o nome da pessoa a qual se vai saudar.
function escreverBoasvindas(nome){ document.write("<H1>Ola " + nome + "</H1>") }
Como podemos ver no exemplo, para definir na função um parâmetro temos que por o nome da variável que vai armazenar o dado que passarmos. Essa variável, que neste caso se chama nome, terá como valor o dado que passarmos a esta função quando a chamarmos, alé disso, a variável terá vida durante a execução da função e deixará de existir quando a função terminar sua execução.
Para chamar a uma função que tem parâmetros coloca-se entre parêntesis o valor do parâmetro. Para chamar à função do exemplo haveria que escrever:
escreverBoasvindas("Alberto Garcia") Ao chamar à função assim, o parâmetro nome toma como valor "Alberto Garcia" e ao escrever a saudação na tela escreverá "Olá Alberto Garcia" entre etiquetas <H1>.
Os parâmetros podem escrever qualquer tipo de dados, numérico, textual, boleano ou um objeto. Realmente não especificamos o tipo do parâmetro, por isso devemos ter um cuidado especial ao definir as ações que realizamos dentro da função e ao passar valores à função para assegurarmos que tudo é conseqüente com os tipos de nossas variáveis ou parâmetros.
Múltiplos parâmetros
Uma função pode receber tantos parâmetros quanto quisermos e para expressá-lo colocam-se os parâmetros separados por vírgulas dentro dos parênteses. Vejamos rapidamente a sintaxe para que a função de antes receba dois parâmetros, primeiro, o nome a quem saudar e segundo, a cor do texto.
function escreverBoasvindas(nome,corTexto){ document.write("<FONT color=" + corTexto + ">) document.write("<H1>Olá " + nome + "</H1>") document.write("</FONT>") }
Chamaríamos à função com esta sintaxe. Entre parênteses colocaremos os valores dos parâmetros.
var meuNome = "Pedro" var minhaCor = "red" escreverBoasvindas(meuNome,minhaCor)
Coloquei entre parênteses, duas variáveis no lugar de dois textos entre aspas. Quando colocamos variáveis entre os parâmetros na verdade o que estamos passando à função são os valores que contém as variáveis e não as mesmas variáveis.
Parâmetros passam-se por valor
Para seguir a linha do uso de parâmetros em nossos programas Javascript, temos que indicar que os parâmetros das funções se passam por valor. Isto quer dizer que mesmo que modifiquemos um parâmetro em uma função a variável original que havíamos passado não mudará seu valor. Pode-se ver facilmente com um exemplo.
function passoPorValor(meuParametro){ meuParametro = 32 document.write("mudei o valor a 32") } var minhaVariavel = 5 passoPorValor(minhaVariavel) document.write ("o valor da variavel e: " + minhaVariavel)
No exemplo, temos uma função que recebe um parâmetro, e que modifica o valor do parâmetro atribuindo-lhe o valor 32. Também temos uma variável, que iniciamos a 5 e posteriormente chamamos à função passando esta variável como parâmetro. Como dentro da função modificamos o valor do parâmetro poderia acontecer da variável original mudasse de valor, mas como os parâmetros não modificam o valor original das variáveis, esta não muda de valor. Deste modo, ao imprimir na tela o valor de minhaVariavel se imprimirá o número 5, que é o valor original da variável, no lugar de 32 que era o valor col o que havíamos atualizado o parâmetro.
Em javascript somente se podem passar as variáveis por valor.