Middle
function.prototype.bind nima nima qiladi va nima uchun kerak?
sobes.tech AI
AIdan javob
function.prototype.bind yangi funktsiya yaratadi va chaqirilganda, this qiymati (ya'ni chaqirish konteksti) o'rnatiladi va, ixtiyoriy ravishda, chaqirishda berilgan argumentlardan oldin keladigan aniq argumentlar to'plami ham belgilanishi mumkin.
Nima uchun kerak:
- Kontekstni (this) belgilash: Ayniqsa, asinxron operatsiyalar, voqea ishlovchilar yoki ob'ekt metodlarini callback sifatida uzatishda foydali, bu yerda
thisning standart xatti-harakatlari o'zgarishi mumkin.bindmetodni asl ob'ekt kontekstida bajarilishini kafolatlaydi. - Funktsiyalarni qisman qo'llash (Currying): Asl funksiyaning boshlang'ich argumentlarini belgilab, yangi funksiyani yaratishga imkon beradi.
Kontekstni belgilash misoli:
class MyClass {
constructor() {
this.name = 'MyClass Instance';
}
greet() {
console.log(`Salom, ${this.name}`);
}
}
const instance = new MyClass();
const greetMethod = instance.greet;
// greetMethod global kontekstda (yoki strict mode'da undefined) chaqirilsa, `this` MyClass emas
greetMethod(); // Chiqish: Salom, undefined (yoki xato)
const boundGreetMethod = instance.greet.bind(instance);
// boundGreetMethod instance kontekstida chaqiriladi
boundGreetMethod(); // Chiqish: Salom, MyClass Instance
Qisman qo'llash misoli:
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // Birinchi argumentni 2 ga belgilash
console.log(multiplyByTwo(5)); // Chiqish: 10 (xuddi multiply(2, 5))