JavaScriptin funktioiden Call

Metodin uudelleenkäyttö

Käytä call() Metodit, joita voit kirjoittaa eri objekteilla käytettäväksi.

Funktiot ovat objektin metodeja

JavaScriptissä funktiot ovat objektin metodeja.

Jos funktio ei ole JavaScript-objektin metodi, niin se on globaalin objektin funktio (katso edellinen luku).

Seuraavassa esimerkissä luodaan objekti, jolla on kolme ominaisuutta (firstNamelastNamefullName)。

Esimerkki

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

Kokeile itse

fullName-ominaisuus onMetodi。person-objekti on tämän metodinOmistaja.

fullName-ominaisuus kuuluu person-objektin metodit.

JavaScript call() -metodi

call() Metodit ovat JavaScriptin määrittämiä metodeja.

Se voidaan käyttää kutsuakseen omistajan objektin metodeja parametrina.

Kautta call(),voit käyttää toisen objektin metodeja.

Tämä esimerkki kutsuu personin fullName-metodia ja käyttää sitä person1:lle:

Esimerkki

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

Kokeile itse

Tämä esimerkki kutsuu personin fullName-metodia ja käyttää sitä person2:lle:

Esimerkki

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

Kokeile itse

Parametria sisältävä call()

call()-menetelmä voi hyväksyä parametrit:

Esimerkki

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

Kokeile itse