JavaScript Function Call

Methoden hergebruik

Gebruik call() Methoden, die u kunt schrijven en gebruiken op verschillende objecten.

Functies zijn objectmethoden

In JavaScript zijn functies methoden van objecten.

Als een functie geen methode van een JavaScript-object is, dan is het een functie van het globale object (zie het vorige hoofdstuk).

Het volgende voorbeeld maakt een object met drie eigenschappen (firstNamelastNamefullName)。

Voorbeeld

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

Probeer het zelf

De fullName eigenschap is eenMethode.Het person object is de methodeEigenaar.

De fullName eigenschap behoort tot Methoden van het person object.

JavaScript call() methode

call() Methoden zijn voorgedefinieerde JavaScript-methoden.

Het kan worden gebruikt om methoden van de eigenaar als parameter aan te roepen.

Door middel van call()U kunt methoden van een andere object gebruiken.

In dit voorbeeld wordt de fullName-methode van person aangeroepen en gebruikt voor person1:

Voorbeeld

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);  // Het zal "Bill Gates" teruggeven

Probeer het zelf

In dit voorbeeld wordt de fullName-methode van person aangeroepen en gebruikt voor person2:

Voorbeeld

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);  // zal "Steve Jobs" teruggeven

Probeer het zelf

Call() methode met parameters

De call() methode kan parameters aanvaarden:

Voorbeeld

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

Probeer het zelf