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