La principale chose que je veux résoudre les problèmes suivants:
1. Quelle est la différence entre l'application et l'appel
2. D'autres utilisations intelligentes de s'appliquer (généralement dans les circonstances qui peuvent s'appliquer être utilisées)
J'ai d'abord trouvé les définitions de l'application et de l'appel depuis Internet, puis j'ai utilisé des exemples pour expliquer la signification de ces deux méthodes et comment les utiliser.
Appliquer: la méthode peut détourner la méthode d'un autre objet et hériter des propriétés d'un autre objet.
Function.Apply (OBJ, Args) peut recevoir deux paramètres
OBJ: Cet objet remplacera cet objet dans la classe de fonction
Args: Ceci est un tableau, il sera passé comme un argument pour fonctionner (Args -> Arguments)
Appel: signifie la même chose que s'appliquer, mais la liste des paramètres est différente.
Function.Call (obj, param1, param2,…, paramn)
OBJ: Cet objet remplacera cet objet dans la classe de fonction
Params: il s'agit d'une liste de paramètres
Appliquer un exemple:
<script type = "text / javascript"> / * définir une personne humaine * / fonction (nom, âge) {this.name = name; this.age = Âge;} / * définir une classe d'étudiant * / fonctionstudent (nom, âge, grade) {personne.Apply (this, arguments); this.grade = grade;} // créer une classe étudiante var student = new Student ("Qian", 21, "First Grade"); // Test Alert ("Name:" + Student.name + "/ n" + "Age:" + Student.age + "/ n" + "Grade:" + Student.grade); // Vous pouvez voir le résultat du résultat de l'âge de l'étudiant: 21 Grade: Première année // Je n'ai pas attribué de valeurs pour l'âge de l'étudiant: 21 Grade: First Grade // Je n'ai pas attribué de valeurs pour l'assistance et l'âge de l'étudiant: 21 Grade: First Grade // Je n'ai pas attribué de valeurs pour l'âge et l'âge de l'étudiant: 21 Grade. Pourquoi ces deux attributs ont-ils des valeurs? Ceci est la magie de l'application. </cript>Analyse: Person.Apply (ceci, arguments);
Ceci: lors de la création d'un objet, il représente l'élève
Arguments: est un tableau, c'est ["Qian", "21", "première année"];
En d'autres termes, en termes de laïque, c'est: Utilisez l'élève pour exécuter le contenu de la classe de personne. Il existe des instructions comme celle-ci. Nom en classe de personne, afin que les attributs soient créés dans l'objet étudiant.
Exemple d'appel
Dans la fonction Studen, vous pouvez modifier l'application à ce qui suit:
Personne.Call (ceci, nom, âge);
la différence
Lorsque vous donnez des paramètres d'objet, si le formulaire de paramètre est un tableau, par exemple, les arguments de paramètre sont passés dans l'exemple d'application, ce paramètre est un type de tableau, et lorsque l'appel de la personne, la liste des paramètres correspond à la même chose (c'est-à-dire que les deux premiers chiffres de la liste des paramètres de personne et de l'élève sont cohérents), vous pouvez utiliser une application. Si la liste des paramètres de ma personne est comme ceci (âge, nom) et que la liste des paramètres de l'élève est (nom, âge, grade), cela peut être réalisé en appelant, c'est-à-dire en spécifiant directement la position de la valeur correspondante de la liste des paramètres (Person.Call (ce, l'âge, le nom, la note));
Certaines autres utilisations intelligentes de l'application
Les gens prudents ont peut-être remarqué que lorsque j'appelle la méthode d'application, le premier paramètre est l'objet (ceci), et le deuxième paramètre est une collection de tableaux.
Lorsque vous appelez personne, ce dont il a besoin n'est pas un tableau, mais pourquoi me donne-t-il un tableau, je peux toujours analyser le tableau en un paramètre,
Il s'agit d'une utilisation intelligente de l'application. Vous pouvez convertir un tableau en une liste de paramètres par défaut ([param1, param2, param3] en param1, param2, param3). Si nous utilisons le programme pour implémenter l'implémentation du remplacement de chaque élément dans le tableau par une liste de paramètres, cela peut prendre un certain temps. Avec l'aide de cette fonctionnalité de l'application, nous avons la méthode efficace suivante:
a) Math.Max peut réaliser le plus grand élément du tableau
Parce que le paramètre math.max ne prend pas en charge Math.max ([param1, param2]), c'est-à-dire le tableau
Cependant, il prend en charge MATH.max (param1, param2, param3 ...), vous pouvez donc résoudre le problème de var max = math.max.apply (null, array) basé sur la fonctionnalité de l'application tout à l'heure, afin que vous puissiez facilement obtenir le plus grand élément dans un tableau
(Appliquer remplacera un assemblage de tableau par un paramètre et le passera à la méthode après l'autre)
Lorsque cette pièce est appelée, le premier paramètre reçoit un null. En effet, il n'y a pas d'objet pour appeler cette méthode. J'ai juste besoin d'utiliser cette méthode pour m'aider à calculer et à obtenir le résultat retourné. Alors j'ai directement passé un null
b) Math.Min peut réaliser le plus petit article du tableau
Aussi, c'est la même chose que Max
var min = math.min.apply (null, array);
c) array.prototype.push peut implémenter la combinaison de deux tableaux
La méthode push ne fournit pas de push un tableau, mais elle fournit PUSH (param1, param,… paramn) afin que vous puissiez également installer et remplacer le tableau en appliquant, c'est-à-dire:
vararr1 = nouveau tableau ("1", "2", "3"); vararr2 = nouveau tableau ("4", "5", "6"); Array.prototype.push.apply (Arr1, Arr2);Il peut également être compris de cette manière, ARR1 appelle la méthode push et les paramètres sont remplacés par l'application de l'assemblage du tableau dans un ensemble de listes de paramètres.
Ce qui précède est la compréhension complète de l'appel d'entrée clé que l'éditeur vous apporte. J'espère que tout le monde pourra soutenir wulin.com ~