objeto de argumentos
No código da função, são usados argumentos especiais de objetos, os desenvolvedores podem acessá -los sem apontar explicitamente os nomes de parâmetros.
Por exemplo, na função dizhi (), o primeiro parâmetro é a mensagem. Esse valor também pode ser acessado com argumentos [0], ou seja, 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, você pode substituir a função sem nomear explicitamente os parâmetros:
função dizhi () {if (argumentos [0] == "tchau") {return;} alert (argumentos [0]);}Número de parâmetros de detecção
Você também pode usar o objeto Argumentos para detectar o número de parâmetros da função e consultar os argumentos do atributo.Length.
O código a seguir produzirá o número de parâmetros usados para cada chamada para a função:
function HowManyargs () {alert (argumentos.Length);} HowManyargs ("String", 45); HowManyargs (); HowManyargs (12);O código acima será exibido "2", "0" e "1" por sua vez.
Nota: Ao contrário de outras linguagens de programação, o ECMAScript não verifica se o número de parâmetros passados para uma função é igual ao número de parâmetros definidos pela função. As funções definidas pelos desenvolvedores podem aceitar qualquer número de parâmetros (de acordo com a documentação do Netscape, até 255) sem lançar erros. Quaisquer parâmetros ausentes serão passados para a função como indefinida e as funções redundantes serão ignoradas.
Simular a sobrecarga da função
Use o objeto de argumentos para determinar o número de parâmetros passados para a função e simulamente simular a sobrecarga da função:
function doadd () {if (argumentos.Length == 1) {alert (argumentos [0] + 5);} else if (argumentos.Length == 2) {alert (argumentos [0] + argumentos [1]);}}}Doadd (10); // saída "15"
Doadd (40, 20); // saída "60"
Quando existe apenas um parâmetro, a função Doadd () adiciona 5 ao parâmetro. Se houver dois parâmetros, os dois parâmetros serão adicionados para retornar sua soma. Portanto, o Doadd (10) sai "15", enquanto Doadd (40, 20) sai "60".
Embora não seja tão bom quanto a sobrecarga, é suficiente para evitar essa limitação do ECMAScript.