Fonction Call JavaScript

Réutilisation des méthodes

Utilisation call() Les méthodes, vous pouvez écrire des méthodes qui peuvent être utilisées sur différents objets.

Les fonctions sont des méthodes d'objet

En JavaScript, une fonction est une méthode d'objet.

Si une fonction n'est pas une méthode d'objet JavaScript, alors c'est une fonction de l'objet global (voir le chapitre précédent).

L'exemple suivant crée un objet avec trois propriétés (firstNamelastNamefullName)。

Exemple

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

Essayer vous-même

L'attribut fullName est unméthode.L'objet person est lePropriétaire.

L'attribut fullName appartient à Les méthodes de l'objet person.

Méthode call() de JavaScript

call() Les méthodes sont des méthodes JavaScript prédéfinies.

Il peut être utilisé pour appeler une méthode en tant que paramètre de l'objet propriétaire.

Par call()Vous pouvez utiliser une méthode appartenant à un autre objet.

L'exemple appelle la méthode fullName de person et l'utilise pour person1 :

Exemple

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

Essayer vous-même

L'exemple appelle la méthode fullName de person et l'utilise pour person2 :

Exemple

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

Essayer vous-même

Méthode call() avec paramètres

La méthode call() peut accepter des paramètres :

Exemple

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

Essayer vous-même