Sobes.tech
Middle

Quelles sont les méthodes call, apply et bind en JavaScript?

sobes.tech IA

Réponse de l'IA

call, apply et bind sont des méthodes disponibles pour toutes les fonctions en JavaScript. Elles sont utilisées pour gérer le contexte d'exécution de la fonction (la valeur de this).

  • call : Appelle une fonction avec une valeur this spécifiée et des arguments séparés.
    // Exemple d'utilisation de call
    function greet() {
      return "Bonjour, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Résultat : Bonjour, Ivan!
    
  • apply : Appelle une fonction avec une valeur this spécifiée et des arguments passés sous forme de tableau ou pseudo-tableau.
    // Exemple d'utilisation de apply
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Résultat : 18
    
  • bind : Crée une nouvelle fonction qui, lorsqu'elle est appelée, a une valeur this fixée. La fonction originale n'est pas appelée immédiatement.
    // Exemple d'utilisation de bind
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Résultat : undefined (this pointe vers l'objet global)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Résultat : 42 (this est lié à module)
    

Principales différences :

Méthode Passage d'arguments Appel de la fonction Valeur de retour
call Séparés (par virgule) Immédiatement Résultat de la fonction
apply Sous forme de tableau ou pseudo-tableau Immédiatement Résultat de la fonction
bind Séparés (par virgule) Pas immédiatement Nouvelle fonction avec this lié