Maison  >  Article  >  interface Web  >  Introduction aux arguments et surcharge dans les compétences Javascript_javascript

Introduction aux arguments et surcharge dans les compétences Javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:09:131184parcourir

En raison d'une erreur de conception du langage, les arguments peuvent être traités comme un tableau.

Copier le code Le code est le suivant :

fonction zéro () {
console.log(arguments[0]);
>

Il y aura aussi
Copier le code Le code est le suivant :

fonction zéro () {
pour(var i=0;i console.log(arguments[i]);
>
>

Il profite du fait que Javascript est Javasc

La variable arguments fournit ici une interface de type tableau pour les paramètres 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 Javascript

Il y a une question sur la surcharge sur stackvoerflow, j'ai donc la première réponse

Copier le code Le code est le suivant :

if (type d'ami === "indéfini") {

} autre {

}

Une autre réponse est

Copier le code Le code est le suivant :

commutateur (arguments.length) {
cas 0 :
//Probablement une erreur
Pause ;
cas 1 :
//Faire quelque chose
Pause ;
cas 2 :
par défaut : //Relier pour gérer le cas de plusieurs paramètres
//Faire autre chose
Pause ;
>

C'est juste que cette méthode n'a vraiment pas l'air bien. Notre fonction va-t-elle ressembler à ça à la fin ?

Copier le code Le code est le suivant :

fonction zéro1 (){
console.log('arguments 1')
};
fonction zéro2 (){
console.log('arguments 2')
};
fonction zéro () {
si(arguments.length == 1){
Zéro1();
} autre{
Zéro2();
>
>

Ça n’a vraiment pas l’air bien du tout. Même si nous changeons le commutateur… le cas, ça n’aura pas l’air bien non plus.

Les arguments Javascript ne sont pas un tableau

arguments n'est pas toujours un tableau comme nous le voyons, parfois ce n'est pas le cas.

Copier le code Le code est le suivant :

fonction bonjour(){
console.log(type d'arguments);
>

Le type d'arguments ici est un objet, bien que le type de tableau soit également un objet, bien que nous puissions le convertir en tableau
Copier le code Le code est le suivant :

var args = Array.prototype.slice.call(arguments);

Mais cela montre également qu'il ne s'agit pas d'un tableau. Il n'a que le seul attribut de Array, qui est la longueur. De plus,

arguments.callee

Référence à la fonction en cours d'exécution.

arguments.caller

Référence à la fonction qui a invoqué la fonction en cours d'exécution.

arguments.length

Référence au nombre d'arguments passés à la fonction.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn