MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

O objeto arguments é como um objeto Array correspondendo aos argumentos passados para uma função.

Sintaxe

arguments

Descrição

O objeto arguments é uma variável local disponível dentro de todas as funções; arguments como uma propriedade de Function não pode mais ser usado.

Você pode referenciar argumentos de uma função dentro de uma função usando o objeto arguments. Esse objeto contém um registro para cada argumento passado para a função, o primeiro índice de registro começa em 0. Por exemplo, se são passados três argumentos para uma função, você pode referenciar esses argumentos como a seguir: 

arguments[0]
arguments[1]
arguments[2]

Os argumentos também podem ser setados:

arguments[1] = 'novo valor';

O objeto argumentos não é um Array. É similar a um Array, mas não tem nenhuma propriedade de Array, exceto length. Por exemplo, ele não possui o método pop. Entetando, ele pode ser convertido em um Array real:

var args = Array.prototype.slice.call(arguments);

Você não deve cortar argumentos porque eles impedem otimizações em motores de JavaScript (V8 por exemplo). Ao invés disso, tente construir um novo array por iteração através de objetos de argumentos.

Se o Array generics está disponível, pode-se usar o seguinte em vez disso:

var args = Array.slice(arguments);

O objeto de argumentos está disponível somente dentro do corpo de uma função. A tentativa de acessar o objeto de argumentos fora da declaração da função resultará em um erro.

Você pode usar o objeto arguments se você chamar uma função com mais argumentos do que ele é formalmente declarado para aceitar. Está técnica é útil para funções que podem ser passada em um número de variáveis de argumentos. Você pode usar arguments.length para determinar o número de argumentos passado para a função, e então processar cada argumento usando o objeto arguments. (Para determinar o número de argumentos declarados quando uma função estava definida, use a propriedade Function.length.)

Propriedades

arguments.callee
Referência para a função atualmente em execução.
arguments.caller
Referência para a função que invocou a função atualmente em execução.
arguments.length
Referência para o número de argumentos passados para a função.
arguments[@@iterator]
Retorna um novo objeto Array Iterator que contém os valores para cada índice dos argumentos.

Exemplos

Definindo uma função que concatena várias strings

Este exemplo define uma função que concatena várias strings. O único argumento formal para a função é uma string que especifica os caracteres que separam os itens para concatenar. A função é definida como se segue:

function myConcat(separator) {
  var args = Array.prototype.slice.call(arguments, 1);
  return args.join(separator);
}

Você pode passar qualquer número de argumentos para essa função, e ela cria uma lista usando cada argumento como um item na lista.

// returns "red, orange, blue"
myConcat(", ", "red", "orange", "blue");

// returns "elephant; giraffe; lion; cheetah"
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");

// returns "sage. basil. oregano. pepper. parsley"
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");

Definindo uma função que cria listas HTML

Este exemplo define uma função que cria uma string contatenado HTML para um a lista. O único argumento formal para a função é uma string que é "u" se a lista for desordenada (marcadores), ou "o" se a lista for ordenada (numerada). A função é definida como se segue:

function list(type) {
  var result = "<" + type + "l><li>";
  var args = Array.prototype.slice.call(arguments, 1);
  result += args.join("</li><li>");
  result += "</li></" + type + "l>"; // end list

  return result;
}

Você pode passar qualquer número de argumentos para essa função, e ela adiciona cada argumento como um item para uma lista do tipo indicado. Por exemplo:

var listHTML = list("u", "One", "Two", "Three");

/* listHTML is:

"<ul><li>One</li><li>Two</li><li>Three</li></ul>"

*/

Especificações

Especificações Status Comentário
ECMAScript 1st Edition (ECMA-262) Standard Definição inicial. Implementado em JavaScript 1.1
ECMAScript 5.1 (ECMA-262)
The definition of 'Arguments Object' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Arguments Exotic Objects' in that specification.
Standard  

Compatibilidade com navegadores

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Veja também

Etiquetas do documento e colaboradores

 Colaboradores desta página: greevin, YurePereira, icaromh
 Última atualização por: greevin,