Middle
Cuéntame sobre las formas de mantener el contexto en JavaScript: bind, call, apply. ¿En qué se diferencian?
sobes.tech AI
Respuesta de la IA
En JavaScript, las funciones son objetos de primera clase y tienen un contexto de llamada dinámico (this). Los métodos bind, call y apply permiten gestionar este contexto:
-
call — llama a la función inmediatamente, pasando el contexto y los argumentos por separado.
func.call(context, arg1, arg2); -
apply — similar a call, pero los argumentos se pasan en forma de array.
func.apply(context, [arg1, arg2]); -
bind — no llama a la función inmediatamente, sino que devuelve una nueva función con el contexto ligado y, opcionalmente, con argumentos parcialmente aplicados.
const boundFunc = func.bind(context, arg1); boundFunc(arg2);
Diferencias:
- call y apply llaman a la función de inmediato;
- bind devuelve una nueva función para ser llamada más tarde;
- apply es útil cuando los argumentos ya están en un array;
- bind es útil para mantener el contexto en callbacks y manejadores de eventos.