Funções com argumentos variáveis em Javascript
As vezes, é útil escrever funções ou métodos cujo número de argumentos é desconhecido a priori. O exemplo clássico funções de formatação de String.
printf("Olá, meu nome é %s, tenho %d anos e moro em %s", "Miguel", 27, "São Paulo")
No exemplo acima, sabemos que no mínimo teremos 1 argumento, que é a string a ser impressa. Mas não sabemos quantos elementos serão injetados na string final. Uma forma de contornar isso é passando os parâmetros em um vetor. A outra é usando um sistema de número de parâmetros variáveis.
Em Javascript, isto é possível utilizando a variável local arguments, existente dentro de cada função executada. Esta variável é um vetor que contém todos os parâmetros realmente passados na chamada da função. Exemplo de uso:
function foo(){ var sum = 0; for (var i=0; i<arguments.length; i++ ) sum += arguments[i]: return sum }
O código acima recebe um número desconhecido de inteiros e retorna a soma destes.
foo(1) = 1; foo(1,2,3) = 6 foo()=0;
:
October 14th, 2007 at 20:14
Bem interessante esta feature de JS que eu desconhecia
Vale lembrar que Java (apesar de ter sua sintaxe considerada conservadora demais por muitos) tem um mecanismo para resolver exatamente este problema deste 2005, chamado varargs.
Só estou adicionando o comentário aqui para contribuir com quem desconhece esta característica de Java, não querendo comparar de maneira alguma Java com Javascript, ambas linguagens que me interessam muito.
:
October 15th, 2007 at 01:12
Vale lembrar que C tem varargs desde 22 de abril de 1500, quando Pero Vaz de Caminha mandou a spec dessa feature na linguagem, foi aceita em C em 1978, mas a JSR 2022 só permitiu a inclusão dessa feature na linguagem 27 anos depois…. hehe.
Desculpa, Bruno. Não resisti. Dá o dedinho, fica de bem.
Viu o vídeo? Eu estava conversando com o Miguel, acho que valia um post aqui no blog sobre o lance de Sapir-Whorf.
:
October 15th, 2007 at 12:27
Funções com argumentos variáveis em Javascript « Log4Dev
Quer criar funções em Javascript que aceitem um número variável de parâmetros? Muito fácil! Eu te mostro como…
:
October 16th, 2007 at 13:05
Não entendi…
:
October 16th, 2007 at 20:50
Ôpa Raphael ainda não vi o video, mas deve render algum post em meu blog depois, hehe.
Quanto a ficar de bem precisamos marcar um chopp com todos os autores deste blog um dia destes, toda vez que alguém falar de software vai ter que virar um copo
:
November 2nd, 2007 at 11:26
[...] aprender mais dicas avançadas de Javascript? Funções com argumentos variáveis em Javascript, Captura de teclas em Javascript – Parte 1, Captura de teclas em Javascript – Parte 2 e [...]
:
November 13th, 2007 at 18:13
[...] No terceiro também, e o valor 3 poderá ser acessado pela variável local arguments (leia o meu post sobre argumentos variáveis em Javascript para entender esta [...]
Dirceu Jr.:
June 6th, 2008 at 18:07
Uia, no JS eu desconhecia também. def boo(*args); end; no Ruby :~