Objeto arguments ECMAScript
- Página anterior Resumo da função
- Próxima página Objeto Function
objeto arguments
No código da função, os desenvolvedores usam o objeto especial argumentsNão é necessário especificar explicitamente o nome do parâmetropode acessá-las.
Por exemplo, no função sayHi(), o primeiro parâmetro é message. Você também pode acessar esse valor usando arguments[0], que é o valor do primeiro parâmetro (o primeiro parâmetro está na posição 0, o segundo parâmetro está na posição 1, e assim por diante).
Portanto, não é necessário nomear explicitamente os parâmetros para rewritten a função:
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
Detecção do número de parâmetros
Também pode usar o objeto arguments para detectar o número de parâmetros de uma função, referindo-se à propriedade arguments.length.
O código a seguir exibirá o número de parâmetros usados em cada chamada da função:
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
O código acima exibirá "2", "0" e "1" em sequência.
Comentário:Diferente de outros linguagens de programação, o ECMAScript não verifica se o número de parâmetros passados para a função é igual ao número de parâmetros definidos na função. Qualquer função definida pelo desenvolvedor pode aceitar qualquer número de parâmetros (de acordo com a documentação da Netscape, até 255), sem causar qualquer erro. Qualquer parâmetro omitido será passado para a função como undefined, e os parâmetros extras serão ignorados.
Simulação de sobrecarga de função
Use o objeto arguments para determinar o número de parâmetros passados para a função, o que permite simular sobrecarga de função:
function doAdd() { if (arguments.length == 1) { alert(arguments[0] + 5); } else if (arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); // Output "15" doAdd(40, 20); // Output "60"
Quando há apenas um parâmetro, a função doAdd() adiciona 5 ao parâmetro. Se houver dois parâmetros, eles serão somados e o resultado será retornado. Portanto, doAdd(10) retorna "15", enquanto doAdd(40, 20) retorna "60".
Embora não seja tão bom quanto sobrecarga, já é suficiente para evitar essa restrição do ECMAScript.
- Página anterior Resumo da função
- Próxima página Objeto Function