Sobes.tech
Junior

Cosa fa la funzione `Function.prototype.bind` e a cosa serve?

sobes.tech AI

Risposta dell'AI

Function.prototype.bind crea una nuova funzione che, al momento della chiamata, avrà un contesto (this) fissato e, opzionalmente, argomenti predefiniti che precedono qualsiasi argomento passato alla nuova funzione al momento della chiamata.

Questo è utile per:

  • mantenere il contesto durante il passaggio di metodi come callback o gestori di eventi.
  • applicare parzialmente (currying) le funzioni.
// Esempio di mantenimento del contesto

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

const greetUser = user.greet;
greetUser(); // Ciao, undefined! (contesto perso)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Ciao, Alice! (contesto mantenuto)
// Esempio di applicazione parziale

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

const multiplyByTwo = multiply.bind(null, 2); // null come contesto, non necessario

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