Sobes.tech
Junior

Čo robí funkcia `Function.prototype.bind` a na čo je potrebná?

sobes.tech AI

Odpoveď od AI

Function.prototype.bind vytvára novú funkciu, ktorá pri volaní bude mať pevne stanovený kontext (this) a voliteľne preddefinované argumenty, ktoré predchádzajú akýmkoľvek argumentom odovzdaným novej funkcii pri volaní.

Toto je užitočné pre:

  • zachovanie kontextu pri odovzdávaní metód ako callbackov alebo obsluhovačov udalostí.
  • čiastočné použitie (currying) funkcií.
// Príklad zachovania kontextu

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

const greetUser = user.greet;
greetUser(); // Ahoj, undefined! (kontext stratený)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Ahoj, Alice! (kontext zachovaný)
// Príklad čiastočného použitia

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

const multiplyByTwo = multiply.bind(null, 2); // null ako kontext, pretože nie je potrebný

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