Em muitos idiomas de alto nível orientados a objetos, há sobrecarga de métodos. E JavaScript não possui o conceito de sobrecarga de métodos. Mas podemos usar o parâmetro de argumentos para disfarçar a sobrecarga da função
Antes da simulação, vejamos o código:
A cópia do código é a seguinte:
// não há função que declara parâmetros formais na superfície
function fun () {
alerta ("código de amostra");
}
diversão ("xiao ming", 100, verdadeiro); // eu escrevi três parâmetros reais
Através dos resultados, vemos que, mesmo que não definamos parâmetros formais ao declarar uma função, podemos escrever parâmetros reais ao chamar o método. (De fato, os parâmetros formais são lidos ao escrever para os programadores para chamar funções)
Podemos obter os parâmetros reais no código? A resposta é sim: Por favor, consulte o código:
A cópia do código é a seguinte:
// não há função que declara parâmetros formais na superfície
function fun () {
alerta (argumentos [0]); // Obtenha o valor do primeiro parâmetro real.
alerta (argumentos [1]); // Obtenha o valor do segundo parâmetro real.
alerta (argumentos [2]); // Obtenha o valor do terceiro parâmetro real.
alerta (argumentos.length); // Obtenha o número de parâmetros reais.
alerta ("código de amostra");
}
diversão ("xiao ming", 100, verdadeiro); // eu escrevi três parâmetros reais
Através do código, podemos saber que os argumentos (propriedades internas) são eles mesmos uma matriz, e sua função é armazenar os parâmetros reais do método.
Com os pontos de conhecimento acima, haverá idéias para recarregar o método de simulação. Podemos fazer um julgamento com base no número de parâmetros reais, de modo a executar diferentes códigos lógicos. O código simples é o seguinte:
A cópia do código é a seguinte:
function fun () {
if (argumentos.Length == 0) {
alerta ("execute o código sem parâmetros reais");
}
caso contrário, se (argumentos.Length == 1)
{
alerta ("execute o código que passa em um parâmetro real");
}
caso contrário, se (argumentos.Length == 2)
{
alerta ("Execute o código que passa em dois parâmetros reais");
}
}
diversão();
diversão ("Xiao Ming");
Fun ("Xiao Ming", "Xiao Hua");