Sobes.tech
Junior

¿Qué hace la función `Function.prototype.bind` y para qué sirve?

sobes.tech AI

Respuesta de la IA

Function.prototype.bind crea una nueva función que, al ser llamada, tendrá un contexto (this) establecido de forma fija y, opcionalmente, argumentos predefinidos que preceden a cualquier argumento pasado a la nueva función al llamarla.

Esto es útil para:

  • mantener el contexto al pasar métodos como callbacks o manejadores de eventos.
  • aplicar parcialmente funciones (currying).
// Ejemplo de mantenimiento del contexto

const user = {
  name: 'Alice',
  greet: function() {
    console.log(`¡Hola, ${this.name}!`);
  }
};

const greetUser = user.greet;
greetUser(); // ¡Hola, undefined! (se pierde el contexto)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // ¡Hola, Alice! (se mantiene el contexto)
// Ejemplo de aplicación parcial

function multiply(a, b) {
  return a * b;
}

const multiplyByTwo = multiply.bind(null, 2); // null como contexto, ya que no es necesario

console.log(multiplyByTwo(5)); // 10