Fonction JavaScript Appliquer
Réutilisation de la méthode
Avec la apply()
méthode, vous pouvez écrire une méthode qui peut être utilisée sur différents objets.
La méthode JavaScript apply()
La apply()
méthode est similaire à la call()
méthode (chapitre précédent).
Dans cet exemple, la méthode fullName de person est appliquée sur person1 :
Exemple
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// This will return "Mary Doe":
person.fullName.apply(person1);
La différence entre call() et apply()
La différence est :
La call()
méthode prend les arguments séparément .
La apply()
méthode prend des arguments sous forme de tableau .
La méthode apply() est très pratique si vous souhaitez utiliser un tableau au lieu d'une liste d'arguments.
La méthode apply () avec des arguments
La apply()
méthode accepte les arguments dans un tableau :
Exemple
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);
Par rapport à la call()
méthode :
Exemple
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.call(person1, "Oslo", "Norway");
Simuler une méthode Max sur des tableaux
Vous pouvez trouver le plus grand nombre (dans une liste de nombres) en utilisant la Math.max()
méthode :
Exemple
Math.max(1,2,3); // Will return 3
Comme les tableaux JavaScript n'ont pas de méthode max(), vous pouvez appliquer la
Math.max()
méthode à la place.
Exemple
Math.max.apply(null, [1,2,3]); // Will also return 3
Le premier argument (null) n'a pas d'importance. Il n'est pas utilisé dans cet exemple.
Ces exemples donneront le même résultat :
Exemple
Math.max.apply(Math, [1,2,3]); // Will also return 3
Exemple
Math.max.apply(" ", [1,2,3]); // Will also return 3
Exemple
Math.max.apply(0, [1,2,3]); // Will also return 3
Mode JavaScript strict
En mode JavaScript strict, si le premier argument de la apply()
méthode n'est pas un objet, il devient le propriétaire (objet) de la fonction invoquée. En mode "non-strict", il devient l'objet global.