JavaScript -functieaanroep
Methode Hergebruik
Met de call()
methode kun je een methode schrijven die op verschillende objecten kan worden gebruikt.
Alle functies zijn methoden
In JavaScript zijn alle functies objectmethoden.
Als een functie geen methode is van een JavaScript-object, is het een functie van het globale object (zie vorig hoofdstuk).
In het onderstaande voorbeeld wordt een object gemaakt met 3 eigenschappen, firstName, lastName, fullName.
Voorbeeld
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
// This will return "John Doe":
myObject.fullName();
Het dit trefwoord
Verwijst in een functiedefinitie this
naar de "eigenaar" van de functie.
In het bovenstaande voorbeeld this
is het persoonsobject dat "eigenaar" is van de
functie fullName .
Met andere woorden, this.firstName betekent de eigenschap firstName van dit object .
Lees meer over het this
trefwoord bij JS dit Trefwoord .
De JavaScript call()-methode
De call()
methode is een vooraf gedefinieerde JavaScript-methode.
Het kan worden gebruikt om een methode aan te roepen (aan te roepen) met een owner-object als argument (parameter).
Met call()
kan een object een methode gebruiken die bij een ander object hoort.
In dit voorbeeld wordt de fullName- methode van person aangeroepen, waarbij deze wordt gebruikt op person1 :
Voorbeeld
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);
In dit voorbeeld wordt de fullName- methode van person aangeroepen, waarbij deze wordt gebruikt op person2 :
Voorbeeld
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);
De call()-methode met argumenten
De call()
methode kan argumenten accepteren:
Voorbeeld
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");