En raison des erreurs de conception du langage, les arguments peuvent être traités comme un tableau.
La copie de code est la suivante:
fonction zéro () {
console.log (arguments [0]);
}
Il y aura
La copie de code est la suivante:
fonction zéro () {
pour (var i = 0; i <arguments.length; i ++) {
console.log (arguments [i]);
}
}
Il profite du fait que Javascript est que Javasc
La variable d'arguments ici fournit une interface de type tableau pour les arguments réels. En raison des paramètres variables des arguments ici, nous pouvons utiliser cette chose intéressante pour faire des choses intéressantes, comme la surcharge.
Rechargement javscript
Il y a une question sur la surcharge sur stackvoerflow, donc la première réponse est
La copie de code est la suivante:
if (typeof ami === "Undefined") {
} autre {
}
Une autre réponse est
La copie de code est la suivante:
commutateur (arguments.length) {
Cas 0:
// probablement une erreur
casser;
Cas 1:
// faire quelque chose
casser;
Cas 2:
par défaut: // tomber pour gérer le cas de plus de paramètres
// faire autre chose
casser;
}
Mais cette méthode n'est vraiment pas belle. Notre fonction sera-t-elle finalement comme ça?
La copie de code est la suivante:
fonction zéro1 () {
console.log («arguments 1»)
};
fonction zéro2 () {
console.log («arguments 2»)
};
fonction zéro () {
if (arguments.length == 1) {
zero1 ();
} autre{
zero2 ();
}
}
Ce n'est vraiment pas du tout beau. Même si nous modifions l'interrupteur ... cas, ça ne aura pas l'air bien.
Les arguments JavaScript ne sont pas un tableau
Les arguments ne sont pas toujours un tableau comme nous le voyons, et parfois il ne le peut pas.
La copie de code est la suivante:
fonction bonjour () {
console.log (type de arguments);
}
Ici, le type d'arguments est un objet, bien que le type de tableau soit également un objet, bien que nous puissions le convertir en un tableau
La copie de code est la suivante:
var args = array.prototype.slice.call (arguments);
Mais cela montre également qu'il ne s'agit pas d'un tableau, il n'a que la seule propriété du tableau, c'est-à-dire la longueur. En plus de cela
arguments.Callee
Référence à la fonction en cours d'exécution.
arguments.
Référence à la fonction qui a invoqué la fonction en cours d'exécution.
arguments.
Référence au nombre d'arguments transmis à la fonction.