JavaScript -Funktion anwenden
Methodenwiederverwendung
Mit der apply()
Methode können Sie eine Methode schreiben, die auf verschiedene Objekte angewendet werden kann.
Die JavaScript apply()-Methode
Die apply()
Methode ähnelt der call()
Methode (vorheriges Kapitel).
In diesem Beispiel wird die Methode fullName von person auf person1 angewendet :
Beispiel
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// This will return "Mary Doe":
person.fullName.apply(person1);
Der Unterschied zwischen call() und apply()
Der Unterschied ist:
Die call()
Methode nimmt Argumente separat entgegen .
Die apply()
Methode akzeptiert Argumente als Array .
Die Methode apply() ist sehr praktisch, wenn Sie anstelle einer Argumentliste ein Array verwenden möchten.
Die apply()-Methode mit Argumenten
Die apply()
Methode akzeptiert Argumente in einem Array:
Beispiel
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"]);
Verglichen mit der call()
Methode:
Beispiel
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");
Simulieren Sie eine Max-Methode für Arrays
Sie können die größte Zahl (in einer Liste von Zahlen) mit der Math.max()
folgenden Methode finden:
Beispiel
Math.max(1,2,3); // Will return 3
Da JavaScript -Arrays keine max()-Methode haben, können Sie
Math.max()
stattdessen die Methode anwenden.
Beispiel
Math.max.apply(null, [1,2,3]); // Will also return 3
Das erste Argument (Null) spielt keine Rolle. Es wird in diesem Beispiel nicht verwendet.
Diese Beispiele führen zum gleichen Ergebnis:
Beispiel
Math.max.apply(Math, [1,2,3]); // Will also return 3
Beispiel
Math.max.apply(" ", [1,2,3]); // Will also return 3
Beispiel
Math.max.apply(0, [1,2,3]); // Will also return 3
Strenger JavaScript-Modus
Wenn im strikten JavaScript-Modus das erste Argument der apply()
Methode kein Objekt ist, wird es zum Eigentümer (Objekt) der aufgerufenen Funktion. Im "non-strict"-Modus wird es zum globalen Objekt.