Maison > interface Web > js tutoriel > Explication détaillée des arguments d'objet intégrés JavaScript_Connaissances de base

Explication détaillée des arguments d'objet intégrés JavaScript_Connaissances de base

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-05-16 16:55:24
original
1341 Les gens l'ont consulté

1. Que sont les arguments
les arguments sont un objet intégré en JavaScript. C'est étrange et souvent négligé, mais c'est en fait très important. Toutes les principales bibliothèques JavaScript utilisent l'objet arguments. L'objet agruments doit donc être familier aux programmeurs JavaScript.
Toutes les fonctions ont leur propre objet arguments, qui contient les paramètres à appeler par la fonction. Ce n'est pas un tableau. Si des arguments typeof sont utilisés, « objet » est renvoyé. Bien que nous puissions appeler des arguments en utilisant la méthode d'appel de données. Par exemple, les méthodes de longueur et d'index. Mais les objets array push et pop ne sont pas applicables.
2. Créer une fonction flexible
Il semble que l'objet argument soit très limité dans son utilisation, mais en fait c'est un objet très utile. Vous pouvez permettre à une fonction d'être appelée avec un nombre variable d'arguments en utilisant l'objet argument. Il existe une fonction de formatage dans la bibliothèque base2 de Dean Edwards qui démontre cette flexibilité.

Copier le code Le code est le suivant :
function format(string) {
var args = arguments;
var pattern = new RegExp(“%([1-" arguments.length "])”, ”g”); return String(string).replace(pattern, function(match, index)); {
Retourner les arguments[index] ;
});
};

Nous fournissons une chaîne de modèle, vous pouvez utiliser "%1" à "%9" pour ajouter un espace réservé à la valeur de retour. Neuf autres paramètres sont ensuite fournis pour l'insertion.


Copier le code Le code est le suivant :format("Et le %1 veut savoir à qui appartient le % 2 vous % 3″, « papiers », « chemise », « porter »);
Le code ci-dessus reviendra : Et les journaux veulent savoir de qui vous portez la chemise".
Il y a une chose nous devons faire attention, lors de la définition de la fonction, nous ne spécifions qu'un seul paramètre, la chaîne. Javascript nous permet de transmettre n'importe quel nombre de paramètres à une fonction, quelle que soit la manière dont la fonction est définie. L'objet Arguments les autorise. est converti en un vrai tableau
Bien que l'objet arguments ne soit pas un vrai tableau JavaScript, nous pouvons facilement le convertir en données standard puis effectuer des opérations sur le tableau 🎜>
Copier le code


. Le code est le suivant :
var args = Array.prototype.slice.call(arguments); Maintenant, cette variable args Il contient un objet tableau JavaScript standard contenant tous les paramètres de la fonction. . Quatrièmement, créez une fonction via l'objet arguments prédéfini L'objet Arguments nous permet d'exécuter tous les types de méthodes JavaScript. Voici la définition d'une fonction makeFunc. tous les paramètres de cette fonction. Il renverra une fonction anonyme pour appeler la fonction que vous spécifiez, et fournira également les paramètres lorsque la fonction anonyme est appelée >
Copier le code

Le. le code est le suivant :

function makeFunc() {
var args = Array.prototype.slice.call(arguments);
var func = args.shift( return function); () { return func.apply(null, args.concat(Array.prototype.slice.call(arguments))); } ; Le premier objet argument fournit à makeFunc une référence à la fonction que vous souhaitez appeler. Il est supprimé du tableau arguments. makeFunc renvoie ensuite une fonction anonyme pour exécuter la méthode spécifiée.
Le premier argument appliqué pointe vers la portée de l'appel de fonction, principalement vers les éléments clés à l'intérieur de la fonction. Gardons cette valeur nulle pour l'instant. Le deuxième argument est un tableau, qui sera converti en objet arguments pour cette fonction. makeFunc concatène les valeurs du tableau d'origine dans l'objet arguments et fournit les tableaux à la fonction anonyme et à la fonction appelée.
Vous devez toujours afficher un modèle à la même position, afin de ne pas avoir à toujours appeler la fonction format à chaque fois que le modèle est référencé. Vous pouvez utiliser la fonctionnalité générique de makeFunc pour renvoyer une fonction qui appelle format puis complète automatiquement le modèle.




Copier le code
Le code est le suivant :


var majorTom = makeFunc(format, « Voici le Major Tom au contrôle au sol. Je suis %1.”);

Vous pouvez appeler la fonction majorTom comme ceci :

Copiez le code Le code est le suivant :
majorTom("passer la porte");
majorTom("flotter d'une manière très particulière");

Chaque fois que vous appelez majorTom, il appellera à la fois la fonction de format et le premier argument, le modèle qui a été rédigé. Ensuite, il reviendra
Copier le code Le code est le suivant :
"Voici le major Tom au contrôle au sol . Je franchis la porte."
"Voici le major Tom au contrôle au sol. Je flotte d'une manière très particulière."

5. Créez une fonction qui se référence.
Vous pensez peut-être que c'est très étrange, Cool, mais les arguments ont plus de surprises. Il possède d’autres fonctionnalités utiles : la méthode de l’appelé. Arguments.callee contient une référence à une fonction pour créer un objet arguments. Alors comment l'utiliser ?
La méthode Arguments.callee permet à une fonction anonyme de pointer vers elle-même facilement.
Répéter est une fonction qui porte une référence de fonction et deux nombres. Le premier nombre est le nombre de fois que la fonction est appelée et le deuxième nombre est le temps entre chaque appel, en millisecondes.
Copier le code Le code est le suivant :
fonction répétition (fn, times, delay) {
return function () {
if(times– > 0) {
fn.apply(null, arguments);
var args = Array.prototype.slice.call(arguments); var self = arguments.callee;
setTimeout(function(){self.apply(null,args)},
}
};
La fonction Repeat utilise la méthode arguments.callee pour obtenir une référence de la variable self, pointant vers la fonction qui a exécuté l'instruction d'origine. De cette façon, la fonction anonyme peut s'appeler à nouveau.
J'ai une fonction super simple qui transporte une chaîne et exécute la méthode d'alerte.



Copier le code

}

Cependant, je souhaite créer une version spéciale grâce à laquelle je peux répéter cette action trois fois, chaque fois avec un intervalle de 2 secondes. Ensuite, on peut


Copier le code

Le code est le suivant :var SomethingWrong = répétition(comms, 3 , 2000) ; somethingWrong("Pouvez-vous m'entendre, major tom ?");
Le résultat de l'appel de la fonction SomethingWrong est de répéter cette action trois fois, avec un intervalle de 2 secondes entre les alertes. .
Bien qu'Arguments ne soit pas souvent utilisé et soit un peu bizarre, il est plein de surprises et mérite d'être compris.
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Derniers numéros
c++ appelle javascript
Depuis 1970-01-01 08:00:00
0
0
0
Qu’est-ce que le garbage collection JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Que sont les fonctions de hook JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Comment obtenir la date actuelle en JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal