La copie de code est la suivante:
<script linguisse = "javascript">
// la première valeur de paramètre.
Test de fonction (a, b, c, d) {
alerte (arguments [0]);
}
// Les arguments [0] sont en fait a. De même, les arguments [1] sont B, C, D
</cript>
La copie de code est la suivante:
<script linguisse = "javascript">
{
function function_name (exp1, exp2, exp3, exp4)
{
var umber = "";
umber = arguments.length;
alerte (ombre);
}
function_name ('a', 'b', 'c', 'd'); peut tous être appelés
// function_name ("a", "b", "c", "d"); peut être appelé
}
</cript>
1. Dans JavaScript, l'objet Arguments est un objet relativement spécial, qui est en fait une propriété intégrée de la fonction actuelle. Les arguments sont très similaires au tableau, mais ne sont pas en fait une instance de tableau. Il peut être vérifié par le code suivant (bien sûr, en fait, dans la fonction Funcarg, il n'est pas nécessaire d'écrire des arguments sous le nom de Funcarg.arguments, il suffit d'écrire des arguments).
La copie de code est la suivante:
Array.prototype.testarg = "test";
fonction funcarg () {
alert (funcarg.arguments.testarg);
alert (funcarg.arguments [0]);
}
alert (nouveau array (). testarg); // Résultat: "test"
Funcarg (10); // Résultat: "Undefined" "10"
2. La longueur de l'objet des arguments est déterminée par le nombre de paramètres réels plutôt que par le nombre de paramètres formels. Les paramètres formels sont des variables qui rouvrent le stockage de l'espace mémoire dans la fonction, mais ils ne chevauchent pas l'espace mémoire de l'objet Arguments. Lorsque des arguments et des valeurs existent, les valeurs sont synchronisées, mais pour l'un d'eux, les valeurs ne sont pas synchronisées pour cette situation sans valeur. Le code suivant peut être vérifié.
La copie de code est la suivante:
fonction f (a, b, c) {
alert (arguments.length); // Résultat: "2"
a = 100;
alerte (arguments [0]); // Résultat: "100"
arguments [0] = "qqyumidi";
alerte (a); // Résultat: "Qqyumidi"
alerte (c); // Résultat: "Undefined"
C = 2012;
alerte (arguments [2]); // Résultat: "Undefined"
}
f (1, 2);
3. À partir de la déclaration et des caractéristiques d'appel des fonctions en JavaScript, on peut voir que les fonctions en JavaScript ne peuvent pas être surchargées.
Sur la base de la surcharge dans d'autres langues: "La valeur de retour de la fonction est différente ou le nombre de paramètres formels est différent", nous pouvons tirer la conclusion ci-dessus:
Premièrement: il n'y a pas une telle déclaration que la déclaration de fonctions JavaScript renvoie un type de valeur;
Deuxièmement: le nombre de paramètres formels dans JavaScript est strictement uniquement pour faciliter le fonctionnement variable dans les fonctions. En fait, les paramètres réels ont été stockés dans l'objet Arguments.
De plus, une compréhension approfondie des raisons pour lesquelles les fonctions ne peuvent pas être surchargées dans JavaScript de la fonction JavaScript elle-même: en JavaScript, les fonctions sont en fait des objets, et le nom de la fonction est une référence à la fonction, ou le nom de la fonction lui-même est une variable. Pour la déclaration de fonction et l'expression de la fonction indiquée ci-dessous, ce qui précède est en fait le même (sans considérer la différence entre la déclaration de fonction et l'expression de la fonction), il nous est très utile de comprendre la caractéristique que les fonctions ne peuvent pas être surchargées en JavaScript.
La copie de code est la suivante:
fonction f (a) {
retourner un + 10;
}
fonction f (a) {
retourner un - 10;
}
// sans considérer la différence entre la déclaration de fonction et l'expression de la fonction, elle équivaut à ce qui suit
var f = fonction (a) {
retourner un + 10;
}
var f = fonction (a) {
retourner un - 10;
}
4. Il existe une propriété très utile dans l'objet des arguments: Callee. arguments.Callee renvoie la référence de fonction actuelle où réside cet objet d'argument. Lorsque vous utilisez des appels récursifs pour fonctionner, utilisez des arguments.Callee au lieu du nom de la fonction lui-même.
comme suit:
La copie de code est la suivante:
Count de fonction (a) {
if (a == 1) {
retour 1;
}
retourner a + arguments.callee (- a);
}
var mm = count (10);
alerte (mm);