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