Sobes.tech
Junior

O que faz a função `Function.prototype.bind` e para que serve?

sobes.tech IA

Resposta da IA

Function.prototype.bind cria uma nova função que, ao ser chamada, terá um contexto (this) fixo e, opcionalmente, argumentos predefinidos que precedem quaisquer argumentos passados à nova função ao chamá-la.

Isto é útil para:

  • manter o contexto ao passar métodos como callbacks ou manipuladores de eventos.
  • aplicar parcialmente funções (currying).
// Exemplo de manutenção de contexto

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

const greetUser = user.greet;
greetUser(); // Olá, undefined! (contexto perdido)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Olá, Alice! (contexto mantido)
// Exemplo de aplicação parcial

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

const multiplyByTwo = multiply.bind(null, 2); // null como contexto, pois não é necessário

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