Middle
Parlez-moi des méthodes pour conserver le contexte en JavaScript : bind, call, apply. En quoi diffèrent-elles?
sobes.tech IA
Réponse de l'IA
En JavaScript, les fonctions sont des objets de première classe et ont un contexte d’appel dynamique (this). Les méthodes bind, call et apply permettent de gérer ce contexte:
-
call — appelle la fonction immédiatement, en passant le contexte et les arguments séparément.
func.call(context, arg1, arg2); -
apply — similaire à call, mais les arguments sont passés sous forme de tableau.
func.apply(context, [arg1, arg2]); -
bind — ne pas appeler la fonction immédiatement, mais retourner une nouvelle fonction avec le contexte lié et éventuellement des arguments partiellement appliqués.
const boundFunc = func.bind(context, arg1); boundFunc(arg2);
Différences :
- call et apply appellent la fonction immédiatement ;
- bind retourne une nouvelle fonction à appeler plus tard ;
- apply est utile lorsque les arguments sont déjà dans un tableau ;
- bind est utile pour conserver le contexte dans les callbacks et gestionnaires d’événements.