JavaScript Function Call

metode gentagelse

Brug call() metoder, som du kan skrive til at kunne bruges på forskellige objekter.

Funktioner er objektmetoder

I JavaScript er funktioner metoder for objekter.

Hvis en funktion ikke er en metode for et JavaScript-objekt, så er det en funktion for det globale objekt (se kapitlet før).

Følgende eksempel opretter et objekt med tre egenskaber (firstNamelastNamefullName)。

Eksempel

var person = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
person.fullName();		// vil returnere "Bill Gates"

Prøv det selv

fullName egenskaben er enmetode。person objektet er metodenEjeren

fullName egenskaben tilhører person objektets metode

JavaScript call() metode

call() Metoder er prædefinerede JavaScript-metoder.

Det kan bruges til at kalde metoder, der er parametre til ejers objekt.

Gennem call(),du kan bruge metoder, der tilhører en anden objekt.

Dette eksempel kalder personens fullName-metode og bruger den til person1:

Eksempel

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);  // vil returnere "Bill Gates"

Prøv det selv

Dette eksempel kalder personens fullName-metode og bruger den til person2:

Eksempel

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);  // vil returnere "Steve Jobs"

Prøv det selv

call()-metode med parameter

call()-metoden kan acceptere parameter:

Eksempel

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");

Prøv det selv