Sobes.tech
Junior

`Function.prototype.bind` функциясы эмне кылат жана эмне үчүн керек?

sobes.tech AI

AIден жооп

Function.prototype.bind жаңы функция түзөт, ал чакырылганда, белгилүү бир контекст (this) жана, каалаганча, алдын ала аныкталган аргументтер менен болот, алар чакыруу учурунда жаңы функцияга берилген бардык аргументтерден мурда келет.

Бул пайдалуу:

  • методдорду callback же окуя иштетүүчүсү катары өткөрүүдө контекстти сактоо үчүн.
  • функцияларды жарым-жартылай колдонуу (currying) үчүн.
// Контекстти сактоо мисалы

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

const greetUser = user.greet;
greetUser(); // Салам, undefined! (контекст жоголду)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Салам, Alice! (контекст сакталды)
// Жарым-жартылай колдонуу мисалы

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

const multiplyByTwo = multiply.bind(null, 2); // null катары контекст, керек эмес

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