Sobes.tech
Junior

Ko dara funkcija `Function.prototype.bind` un kam tā ir nepieciešama?

sobes.tech AI

Atbilde no AI

Function.prototype.bind izveido jaunu funkciju, kas, izsaucot, būs ar fiksētu kontekstu (this) un, pēc vēlēšanās, iepriekš definētiem argumentiem, kas nāk pirms jebkuriem argumentiem, kas nodoti jaunajai funkcijai izsaukuma laikā.

Tas ir noderīgi:

  • saglabājot kontekstu, pārsūtot metodes kā callback vai notikumu apstrādātājus.
  • daļējas funkcijas (currying) piemērošanai.
// Konteksta saglabāšanas piemērs

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

const greetUser = user.greet;
greetUser(); // Sveiki, undefined! (konteksts zaudēts)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Sveiki, Alice! (konteksts saglabāts)
// Daļējas funkcijas piemērs

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

const multiplyByTwo = multiply.bind(null, 2); // null kā konteksts, jo tas nav nepieciešams

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