A definição de função JS pode especificar o nome do parâmetro formal. Mais ou menos, pensaríamos que o JS pode pelo menos suportar a sobrecarga de métodos com diferentes parâmetros. Infelizmente, isso é apenas uma ilusão. Todos os parâmetros de JS são passados em argumentos. Este parâmetro é semelhante a uma matriz. Quando uma função é chamada, todos os parâmetros reais são armazenados nessa estrutura de dados. Os parâmetros formais especificados quando definimos a função realmente definem um método de acesso rápido para os dados nessa estrutura de dados. Em outras palavras, todas as funções do JS suportam parâmetros infinitos, e o tipo de dados é um tipo fraco, portanto, não há realmente nenhuma diferença de método entre as funções JS, exceto para nomes?
Sempre existem maneiras, podemos usar argumentos especiais de objetos no JavaScript para simular a sobrecarga de funções. Use -o para determinar o número ou tipo de parâmetros recebidos para distinguir a sobrecarga.
1. Recarregue de acordo com o número de parâmetros
Js para determinar o número de parâmetros recebidos pode ser julgado pelo atributo.
A cópia do código é a seguinte:
<script type = "text/javascript">
função add () {
if (argumentos.Length == 1) {
alerta (argumentos [0] + 10);
}
else if (argumentos.length == 2) {
alerta (argumentos [0] + argumentos [1]);
}
}
// Chamada de função
add (10);
add (10, 20);
</script>
2. Recarregue de acordo com o tipo de parâmetro
Existem 3 maneiras de julgar os tipos de variáveis:
1. Use a instrução TIPEOF para julgar o tipo de variável e a instrução TIPEOF retorna a sequência correspondente ao tipo.
2. Use a instrução Instânciaof para julgar o tipo de variável e a instrução Instância do retorno retorna true/false.
3. Use o atributo construtor para determinar o tipo de variável, que retorna a referência do construtor usada para construir a variável.
Tabela de comparação: pode -se observar que o uso do tipoof não pode determinar com precisão o tipo específico; portanto, usamos o construtor para fazer julgamentos.
typeofstringNumberObjectFunctionBooleanObjectObject
ConstructorsTringNumberObjectFunctionBoolEanArrayUser Definir
A cópia do código é a seguinte:
<script type = "text/javascript">
função add ()
{
if (argumentos.Length == 0) retornar 0;
var sum = 0;
for (var i = 0; i <argumentos.length; i ++) {
if (argumentos [i] .Constructor == número) {
// ou altere para: if (argumentos [i] Instância de número de
// ou altere para: if (typeof (argumentos [i]) == "número")
soma += argumentos [i];
}
}
soma de retorno;
}
// Chamada de função
alerta (add (10));
alerta (add (10,20));
</script>
Você entendeu o método de sobrecarregar as funções JavaScript? Se você tiver alguma dúvida, deixe uma mensagem