Fonction JavaScript apply()
Réutilisation de méthode
Avec la méthode apply() , vous pouvez écrire une méthode qui peut être utilisée sur différents objets.
La méthode apply() de JavaScript
La méthode apply() est similaire à la méthode call() (chapitre précédent).
Dans cet exemple, la méthode fullName de person est appliquée à person1 :
Exemple
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// Cela retournera "Mary Doe" :
person.fullName.apply(person1);
La différence entre call() et apply()
La méthode call() prend des arguments séparément .
La méthode apply() 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 méthode apply() accepte des 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"]);
Comparé à la méthode call() :
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 méthode Math.max() :
Exemple
Math.max(1,2,3); // Retournera 3
Puisque les tableaux JavaScript n'ont pas de méthode max(), vous pouvez appliquer la méthode Math.max() à la place.
Exemple
Math.max.apply(null, [1,2,3]); // Retournera également 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]); // Retournera également 3
Exemple
Math.max.apply(" ", [1,2,3]); // Retournera également 3
Exemple
Math.max.apply(0, [1,2,3]); // Retournera également 3
Mode strict de JavaScript
En mode strict JavaScript, si le premier argument de la méthode apply() 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.