Sobes.tech
Junior

`Function.prototype.bind` funksiyasi nima qiladi va nima uchun kerak?

sobes.tech AI

AIdan javob

Function.prototype.bind yangi funktsiya yaratadi va chaqirilganda, u qat'iy belgilangan kontekst (this) va ixtiyoriy ravishda, chaqirilganda yangi funktsiyaga uzatiladigan argumentlardan oldin keladigan oldindan belgilangan argumentlar bilan chaqiriladi.

Bu quyidagilar uchun foydalidir:

  • metodlarni callback yoki voqea ishlovchilar sifatida uzatishda kontekstni saqlash.
  • funksiyalarni qisman qo'llash (currying).
// Kontekstni saqlash misoli

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

const greetUser = user.greet;
greetUser(); // Salom, undefined! (kontekst yo'qolgan)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Salom, Alice! (kontekst saqlangan)
// Qisman qo'llash misoli

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

const multiplyByTwo = multiply.bind(null, 2); // null kontekst uchun, chunki kerak emas

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