Junior
Ce face funcția `Function.prototype.bind` și pentru ce este necesară?
sobes.tech AI
Răspuns de la AI
Function.prototype.bind creează o funcție nouă care, atunci când este apelată, va avea un context (this) fixat și, opțional, argumente predefinite care preced orice argumente transmise noii funcții la apel.
Acest lucru este util pentru:
- păstrarea contextului atunci când se transmit metode ca callback-uri sau handleri de evenimente.
- aplicarea parțială (currying) a funcțiilor.
// Exemplu de păstrare a contextului
const user = {
name: 'Alice',
greet: function() {
console.log(`Salut, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Salut, undefined! (context pierdut)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Salut, Alice! (context păstrat)
// Exemplu de aplicare parțială
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null ca și context, deoarece nu este nevoie
console.log(multiplyByTwo(5)); // 10