Middle
¿Qué son los métodos call, apply y bind en JavaScript?
sobes.tech AI
Respuesta de la IA
call, apply y bind son métodos disponibles para todas las funciones en JavaScript. Se utilizan para gestionar el contexto de ejecución de la función (el valor de this).
- call: Llama a la función con un valor
thisespecificado y argumentos separados.// Ejemplo de uso de call function greet() { return "¡Hola, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Salida: ¡Hola, Ivan! - apply: Llama a la función con un valor
thisespecificado y argumentos pasados en forma de array o pseudoarray.// Ejemplo de uso 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)); // Salida: 18 - bind: Crea una nueva función que, al ser llamada, tiene un valor
thisestablecido. La función original no se ejecuta inmediatamente.// Ejemplo de uso de bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Salida: undefined (this apunta al objeto global) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Salida: 42 (this está ligado a module)
Diferencias principales:
| Método | Pasaje de argumentos | Llamada a la función | Valor de retorno |
|---|---|---|---|
| call | Separados (por coma) | Inmediatamente | Resultado de la función |
| apply | En forma de array o pseudoarray | Inmediatamente | Resultado de la función |
| bind | Separados (por coma) | No inmediatamente | Nueva función con this ligado |