Funções com argumentos variáveis em Javascript

October 13, 2007

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;

tags:
posted in Uncategorized by Miguel Galves

Follow comments via the RSS Feed | Leave a comment | Trackback URL

View Comments to "Funções com argumentos variáveis em Javascript"

  1. wrote:

    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.

  2. wrote:

    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.

  3. wrote:

    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…

  4. wrote:

    Quer criar funções em Javascript que aceitem um número variável de parâmetros? Muito fácil! Eu te mostro como…

    Não entendi…

  5. wrote:

    Ô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 :D

  6. wrote:

    [...] 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 [...]

  7. wrote:

    [...] 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 [...]

  8. Dirceu Jr. wrote:

    Uia, no JS eu desconhecia também. def boo(*args); end; no Ruby :~

Leave Your Comment

blog comments powered by Disqus

Switch to our mobile site

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org