Sobes.tech
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