Sobes.tech
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 this especificado 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 this especificado 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 this establecido. 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