JavaScript- funksie-oproep
Metode Hergebruik
Met die call()
metode kan jy 'n metode skryf wat op verskillende voorwerpe gebruik kan word.
Alle funksies is metodes
In JavaScript is alle funksies objekmetodes.
As 'n funksie nie 'n metode van 'n JavaScript-objek is nie, is dit 'n funksie van die globale objek (sien vorige hoofstuk).
Die voorbeeld hieronder skep 'n objek met 3 eienskappe, voornaam, van, volnaam.
Voorbeeld
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
// This will return "John Doe":
myObject.fullName();
Die hierdie sleutelwoord
In 'n funksiedefinisie, this
verwys na die "eienaar" van die funksie.
In die voorbeeld hierbo, this
is die persoon-objek wat die volle Naam -funksie "besit"
.
Met ander woorde, this.firstName beteken die firstName - eienskap van hierdie objek .
Lees meer oor die this
sleutelwoord by JS hierdie sleutelwoord .
Die JavaScript call() Metode
Die call()
metode is 'n vooraf gedefinieerde JavaScript-metode.
Dit kan gebruik word om 'n metode op te roep (oproep) met 'n eienaar-objek as 'n argument (parameter).
Met call()
, kan 'n voorwerp 'n metode gebruik wat aan 'n ander voorwerp behoort.
Hierdie voorbeeld noem die vollenaam -metode van persoon, gebruik dit op persoon1 :
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);
Hierdie voorbeeld noem die vollenaam -metode van persoon en gebruik dit op persoon2 :
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);
Die oproep()-metode met argumente
Die call()
metode kan argumente aanvaar:
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");