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
thisspé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
thisspé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
thisfixé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é |