JavaScript- Funktionsaufruf
Methodenwiederverwendung
Mit der call()
Methode können Sie eine Methode schreiben, die auf verschiedene Objekte angewendet werden kann.
Alle Funktionen sind Methoden
In JavaScript sind alle Funktionen Objektmethoden.
Wenn eine Funktion keine Methode eines JavaScript-Objekts ist, ist sie eine Funktion des globalen Objekts (siehe vorheriges Kapitel).
Das folgende Beispiel erstellt ein Objekt mit 3 Eigenschaften, firstName, lastName, fullName.
Beispiel
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
// This will return "John Doe":
myObject.fullName();
Das Schlüsselwort this
Bezieht sich in einer Funktionsdefinition this
auf den „Besitzer“ der Funktion.
Im obigen Beispiel this
ist das Person-Objekt , das die fullName- Funktion „besitzt“
.
Mit anderen Worten bedeutet this.firstName die firstName- Eigenschaft dieses Objekts .
Lesen Sie mehr über das this
Schlüsselwort bei JS this Keyword .
Die Call()-Methode von JavaScript
Die call()
Methode ist eine vordefinierte JavaScript-Methode.
Es kann verwendet werden, um eine Methode mit einem Besitzerobjekt als Argument (Parameter) aufzurufen (aufzurufen).
Mit call()
kann ein Objekt eine Methode eines anderen Objekts verwenden.
Dieses Beispiel ruft die Methode fullName von person auf und verwendet sie für person1 :
Beispiel
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
const person2 = {
firstName:"Mary",
lastName: "Doe"
}
// This will return "John Doe":
person.fullName.call(person1);
Dieses Beispiel ruft die Methode fullName von person auf und verwendet sie für person2 :
Beispiel
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
const person2 = {
firstName:"Mary",
lastName: "Doe"
}
// This will return "Mary Doe"
person.fullName.call(person2);
Die Methode call() mit Argumenten
Die call()
Methode kann Argumente akzeptieren:
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");