Funzione Call JavaScript

Riutilizzo dei metodi

Utilizzo call() Metodi, puoi scrivere metodi che possono essere utilizzati su diversi oggetti.

Le funzioni sono metodi degli oggetti

In JavaScript, le funzioni sono metodi degli oggetti.

Se una funzione non è un metodo dell'oggetto JavaScript, allora è una funzione dell'oggetto globale (vedi il capitolo precedente).

Esempio di creazione di un oggetto con tre proprietà (firstNamelastNamefullName)。

Esempio

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

Prova da solo

L'attributo fullName è unMetodo.L'oggetto person è il metodoProprietario.

L'attributo fullName appartiene a Metodi dell'oggetto person.

Metodo call() di JavaScript

call() I metodi sono metodi JavaScript predefiniti.

Può essere utilizzato per chiamare i metodi dell'oggetto proprietario come argomento.

Attraverso call()Puoi utilizzare i metodi di un altro oggetto.

In questo esempio, viene chiamato il metodo fullName dell'oggetto person e utilizzato per person1:

Esempio

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

Prova da solo

In questo esempio, viene chiamato il metodo fullName dell'oggetto person e utilizzato per person2:

Esempio

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

Prova da solo

Metodo call() con parametri

Il metodo call() può accettare i seguenti parametri:

Esempio

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

Prova da solo