A cópia do código é a seguinte:
<Script Language = "JavaScript">
// o primeiro valor do parâmetro.
teste de função (a, b, c, d) {
alerta (argumentos [0]);
}
// argumentos [0] é na verdade a. Da mesma forma, os argumentos [1] são B, C, D por sua vez
</script>
A cópia do código é a seguinte:
<Script Language = "JavaScript">
{
function function_name (exp1, exp2, exp3, exp4)
{
var umber = "";
umber = argumentos.length;
alerta (umber);
}
function_name ('a', 'b', 'c', 'd'); todos podem ser chamados
// function_name ("a", "b", "c", "d"); pode ser chamado
}
</script>
1. Em JavaScript, o objeto de argumentos é um objeto relativamente especial, que na verdade é uma propriedade interna da função atual. Os argumentos são muito semelhantes à matriz, mas na verdade não são uma instância de matriz. Ele pode ser verificado pelo código a seguir (é claro, de fato, na função funcarg, é desnecessário escrever argumentos como funcarg.arguments, apenas escrever argumentos).
A cópia do código é a seguinte:
Array.prototype.testarg = "test";
função funcarg () {
alerta (funcarg.argudents.testarg);
alerta (funcarg.arguments [0]);
}
alerta (new Array (). testArg); // resultado: "teste"
funcarg (10); // resultado: "indefinido" "10"
2. O comprimento do objeto de argumentos é determinado pelo número de parâmetros reais, em vez do número de parâmetros formais. Os parâmetros formais são variáveis que reabrem o armazenamento de espaço de memória dentro da função, mas não se sobrepõem ao espaço de memória do objeto Argumentos. Quando existem argumentos e valores, os valores são sincronizados, mas para um deles, os valores não são sincronizados para esta situação sem valor. O código a seguir pode ser verificado.
A cópia do código é a seguinte:
função f (a, b, c) {
alerta (argumentos.length); // resultado: "2"
a = 100;
alerta (argumentos [0]); // resultado: "100"
argumentos [0] = "qqyumidi";
alerta (a); // resultado: "qqyumidi"
alerta (c); // resultado: "indefinido"
c = 2012;
alerta (argumentos [2]); // resultado: "indefinido"
}
f (1, 2);
3. A partir da declaração e das características de chamadas das funções no JavaScript, pode -se ver que as funções no JavaScript não podem ser sobrecarregadas.
Com base na base da sobrecarga em outros idiomas: "O valor de retorno da função é diferente ou o número de parâmetros formais é diferente", podemos tirar a conclusão acima:
Primeiro: não existe tal afirmação de que a declaração das funções JavaScript retorna um tipo de valor;
Segundo: O número de parâmetros formais no JavaScript é estritamente apenas para facilitar a operação variável nas funções. De fato, os parâmetros reais foram armazenados no objeto de argumentos.
Além disso, um entendimento profundo de por que as funções não podem ser sobrecarregadas no JavaScript da própria função JavaScript: no JavaScript, as funções são realmente objetos e o nome da função é uma referência à função ou o nome da função em si é uma variável. Para a declaração da função e a expressão da função mostrada abaixo, o acima é realmente o mesmo (sem considerar a diferença entre a declaração da função e a expressão da função), é muito útil para entendermos a característica de que as funções não podem ser sobrecarregadas em JavaScript.
A cópia do código é a seguinte:
função f (a) {
retornar a + 10;
}
função f (a) {
retornar a - 10;
}
// sem considerar a diferença entre a declaração da função e a expressão da função, é equivalente ao seguinte
var f = função (a) {
retornar a + 10;
}
var f = função (a) {
retornar a - 10;
}
4. Existe uma propriedade muito útil no objeto de argumentos: Callee. argumentos.Callee Retorna a referência de função atual onde esse objeto de argumento reside. Ao usar chamadas recursivas para funcionar, use argumentos.callee em vez do próprio nome da função.
do seguinte modo:
A cópia do código é a seguinte:
contagem de funções (a) {
if (a == 1) {
retornar 1;
}
retornar a + argumentos.callee (-a);
}
var mm = contagem (10);
alerta (mm);