terça-feira, 29 de outubro de 2002

Criando funções com parâmetros opcionais em javascript

Estou postando esta dica atendendo à dúvida de um internauta. Como criar funções em javascript que recebam parâmetros opcionais? Para isso vamos precisar do operador typeof. O typeof retorna uma string com o tipo de uma variável. Pode retornar "number", "string", "boolean", "object", "function" ou "undefined". Quando uma variável não recebeu valor, seu tipo será undefined.


Assim, suponhamos a seguinte função, que multiplica dois números:

function Teste(x,y){
return x * y
}

Queremos agora tornar o segundo argumento opcional, de modo que, se a função for chamada apenas com o valor de x, ele seja multiplicado por si próprio:

function Teste(x,y){
if(typeof(y)=="undefined")y=x
return x * y
}

Ou, simplificando:

function Teste(x,y){
return x * (typeof(y)!="undefined"?y:x)
}

Assim, se chamarmos:

Teste(3,5)

Teremos 15 como resultado. E se chamarmos:

Teste(3)

O resultado será 9.


O mesmo truque pode ser usado quando você espera um tipo específico de dado ou deseja converter os dados antes de usar. Assim, você pode fazer:

function TrataDados(n){
if(typeof(n)=="number"){
//O tratamento para número.
}
if(typeof(n)=="string"){
//O tratamento para texto.
}
...
}

Esse recurso pode ajudar, e muito, a escrever código reutilizável.



Esta matéria foi postada originalmente no ASP4Developers por Elcio Luiz Ferreira (site), que na época era " analista-programador apaixonado por javascript, ex-professor, músico amador, ciclista amador, teólogo amador, filósofo amador, escritor amador e comediante amador.". Hoje, vai saber...

1 comentários:

GeekSoft disse...

Pessoal, nao precisa verificar nada de "undefined", basta que o parametro opcional comece com "_" (underline).
function teste(a,b,_c)
{
...
}
espero poder ajudar !