JavaScript-Funktion-Call

Methodenwiederverwendung

Verwenden call() Methoden, die Sie schreiben können, um Methoden auf verschiedenen Objekten zu verwenden.

Funktionen sind Methoden von Objekten

In JavaScript sind Funktionen Methoden von Objekten.

Wenn eine Funktion nicht eine Methode eines JavaScript-Objekts ist, dann ist es eine Funktion des globalen Objekts (siehe Kapitel zuvor).

Unten ist ein Beispiel für die Erstellung eines Objekts mit drei Eigenschaften (firstName,lastName,fullName)。

Beispiel

var person = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
person.fullName();		// Es wird "Bill Gates" zurückgegeben

Probieren Sie es selbst aus

Die fullName-Eigenschaft ist eineMethode. Das person-Objekt ist derEigentümer.

Die fullName-Eigenschaft gehört zu Methoden des person-Objekts.

JavaScript call() Methode

call() Methoden sind vorgegebene JavaScript-Methoden.

Es kann verwendet werden, um Methoden des Eigentümers als Parameter aufzurufen.

Durch call()Sie können Methoden eines anderen Objekts verwenden.

In diesem Beispiel wird die fullName-Methode von person aufgerufen und für person1 verwendet:

Beispiel

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person1);  // Es wird "Bill Gates" zurückgegeben

Probieren Sie es selbst aus

In diesem Beispiel wird die fullName-Methode von person aufgerufen und für person2 verwendet:

Beispiel

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person2);  // wird "Steve Jobs" zurückgeben

Probieren Sie es selbst aus

call()-Methode mit Parametern

Die call()-Methode kann Parameter akzeptieren:

Beispiel

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"Bill",
  lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");

Probieren Sie es selbst aus