A definição da função JS pode especificar o nome do parâmetro formal. Esse parâmetro é semelhante a uma matriz método. 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.
typeof | corda | número | objeto | função | booleano | objeto | objeto |
construtor | Corda | Número | Objeto | Função | Booleano | Variedade | Usuário define |
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>