JavaScript- functie Toepassen
Methode Hergebruik
Met de apply()
methode kun je een methode schrijven die op verschillende objecten kan worden gebruikt.
De JavaScript apply()-methode
De apply()
methode is vergelijkbaar met de call()
methode (vorig hoofdstuk).
In dit voorbeeld wordt de fullName methode van person toegepast op person1 :
Voorbeeld
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// This will return "Mary Doe":
person.fullName.apply(person1);
Het verschil tussen call() en apply()
Het verschil is:
De call()
methode neemt argumenten afzonderlijk op .
De apply()
methode neemt argumenten als een array .
De methode apply() is erg handig als je een array wilt gebruiken in plaats van een argumentenlijst.
De methode apply() met argumenten
De apply()
methode accepteert argumenten in een array:
Voorbeeld
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"]);
Vergeleken met de call()
methode:
Voorbeeld
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");
Simuleer een Max-methode op arrays
Het grootste getal (in een lijst met getallen) vind je met de Math.max()
methode:
Voorbeeld
Math.max(1,2,3); // Will return 3
Aangezien JavaScript -arrays geen max()-methode hebben, kunt u de
Math.max()
methode in plaats daarvan toepassen.
Voorbeeld
Math.max.apply(null, [1,2,3]); // Will also return 3
Het eerste argument (null) doet er niet toe. Het wordt in dit voorbeeld niet gebruikt.
Deze voorbeelden geven hetzelfde resultaat:
Voorbeeld
Math.max.apply(Math, [1,2,3]); // Will also return 3
Voorbeeld
Math.max.apply(" ", [1,2,3]); // Will also return 3
Voorbeeld
Math.max.apply(0, [1,2,3]); // Will also return 3
JavaScript strikte modus
In de strikte modus van JavaScript, als het eerste argument van de apply()
methode geen object is, wordt het de eigenaar (object) van de aangeroepen functie. In de "niet-strikte" modus wordt het het globale object.