1. Quels sont les arguments
Les arguments sont un objet intégré en JavaScript. Toutes les principales bibliothèques de fonctions JS utilisent des objets d'arguments. Par conséquent, l'objet Agruments est nécessaire pour que les programmeurs JavaScript connaissent.
Toutes les fonctions ont leur propre objet d'arguments, qui inclut les paramètres à appeler par la fonction. Ce n'est pas un tableau, si des arguments types sont utilisés, le retour est «objet». Bien que nous puissions appeler des arguments en appelant des données. Par exemple, la longueur et la méthode d'index. Mais les objets push et pop des tableaux ne sont pas applicables.
2. Créez une fonction flexible
Il semble que l'objet argumentaire soit très limité à l'utilisation, mais en fait, c'est un objet très utile. Vous pouvez utiliser l'objet Argument pour activer la fonction pour appeler un nombre indéfini de paramètres. Il existe une fonction formatée dans la bibliothèque Base2 de Dean Edwards qui démontre cette flexibilité.
Copiez le code comme suit: Fonction Format (String) {
var args = arguments;
Var Pattern = new regexp ("% ([1-" + arguments.length + "])", "g");
return string (string) .replace (motif, fonction (match, index) {
return args [index];
});
};
Nous fournissons une chaîne de modèle où vous pouvez ajouter un espace réservé à la valeur de retour en utilisant "% 1" à "% 9". Fournissez ensuite neuf autres paramètres à insérer.
La copie de code est la suivante: Format ("et le% 1 veulent savoir à qui% 2 vous% 3", "papiers", "chemise", "wear");
Le code ci-dessus reviendra: et les papiers veulent savoir dont vous portez la chemise ".
Il y a quelque chose à qui nous devons faire attention. JavaScript nous permet de transmettre n'importe quel nombre de paramètres dans une fonction, peu importe comment nous définissons cette fonction. Arguments Les objets sont autorisés pour ceux-ci.
3. Convertir les arguments objet en un vrai tableau
Bien que l'objet d'arguments ne soit pas un vrai tableau JavaScript, nous pouvons toujours les convertir facilement en données standard, puis effectuer des opérations de tableau.
La copie de code est la suivante: var args = array.prototype.slice.call (arguments);
Maintenant, cette variable args contient un objet de tableau JavaScript standard contenant tous les paramètres de la fonction.
4. Créer des fonctions via des objets d'arguments prédéfinis
L'objet Arguments nous permet d'exécuter tous les types de méthodes JavaScript. Voici une définition de MakeFunc fonction. Cette fonction nous permet de fournir une référence de fonction et tous les paramètres de cette fonction. Il renverra une fonction anonyme pour appeler la fonction que vous avez spécifiée, et fournira également les paramètres attachés à l'appel de fonction anonyme.
Copiez le code comme suit: fonction 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 d'argument fournit à MakeFunc une référence à la fonction que vous souhaitez appeler. Il l'a retiré du tableau des arguments. Ensuite, MakeFunc renvoie une fonction anonyme pour exécuter la méthode spécifiée.
L'argument de la première application pointe vers la portée de l'appel de fonction, principalement pointé par les parties clés de la fonction. Gardons cela comme null en premier. Le deuxième argument est un tableau qui sera converti en un objet d'argument pour cette fonction. MakeFunc concaène les valeurs de tableau d'origine dans l'objet d'arguments et le tableau des fonctions appelées.
Vous devez sortir un modèle qui est toujours à la même position afin de ne pas toujours appeler la fonction de format chaque fois que vous vous référez au modèle. Vous pouvez utiliser la fonction générale de MakeFunc pour retourner des fonctions qui peuvent appeler le format et compléter automatiquement le modèle.
La copie de code est la suivante: var majortom = makefunc (format, "C'est majeur Tom au contrôle du sol. Je suis% 1.");
Vous pouvez appeler la fonction Majortom comme ceci:
La copie de code est la suivante: Majortom ("franchir la porte");
Majortom ("flottant d'une manière la plus particulière");
Chaque fois que vous appelez Majortom, il appellera la fonction de format et le premier argument en même temps, et le modèle déjà écrit. Ensuite, il reviendra
Copiez le code comme suit: "C'est majeur Tom au contrôle du sol. Je franchis la porte."
«C'est le major Tom au contrôle du sol.
5. Créez une fonction qui se fait référence
Vous pensez peut-être que c'est cool, mais il y a plus de surprises pour les arguments. Il a d'autres caractéristiques utiles: la méthode Callee. Arguments.Callee comprend une référence à une fonction pour créer un objet d'argument. Alors comment l'utiliser?
La méthode Arguments.Callee permet à une fonction anonyme de se pointer très facilement vers lui.
La répétition est une fonction qui porte une référence de fonction et deux nombres. Le premier numéro est le nombre de fois que la fonction est appelée, et le deuxième nombre est l'intervalle entre chaque appel, en millisecondes.
La copie de code est la suivante: Fonction Repeat (FN, Times, Delay) {
return function () {
if (fois> 0) {
fn.Apply (null, arguments);
var args = array.prototype.slice.call (arguments);
var self = arguments.callee;
setTimeout (function () {self.Apply (null, args)}, retard);
}
};
}
La fonction de répétition utilise la méthode Arguments.Callee pour obtenir une référence à partir de la variable Soi pour pointer la fonction qui exécute l'instruction d'origine. De cette façon, la fonction anonyme peut être rappelée.
J'ai une fonction super brève qui héberge une chaîne et exécute une méthode d'alerte.
Copiez le code comme suit: Fonction Comms (S) {
alerte (s);
}
Cependant, je veux créer une version spéciale à travers laquelle je peux répéter cette action trois fois, à chaque intervalle de temps de 2 secondes. Alors, nous pouvons
La copie de code est la suivante: var quelque chose quelque chose = répéter (Comms, 3, 2000);
Quelque chose ("Pouvez-vous m'entendre, major Tom?");
Le résultat de l'appel de la fonction quelque chose est de répéter cette action trois fois, avec chaque intervalle d'alerte de 2 secondes.
Bien que les arguments ne soient pas utilisés fréquemment et sont un peu bizarres, ils sont pleins de surprises et valent la peine d'être appris.