Middle
function.prototype.bind funksiyası nə edir və nə üçün lazımdır?
sobes.tech Süni İntellekt
AI-dan cavab
function.prototype.bind yeni bir funksiyanı yaradır və çağırıldığında, this dəyəri (yəni, çağırış konteksti) təyin edilir və istəyə bağlı olaraq, çağırış zamanı yeni funksiyaya əvvəlcədən təyin edilmiş argumentlər də müəyyən edilə bilər.
Nəyə görə lazımdır:
- Konteksti (this) sabitləşdirmək: Xüsusilə, asinxron əməliyyatlar, hadisə idarəediciləri və ya obyekt metodlarını callback kimi ötürərkən,
this-in standart davranışı dəyişə bilər.bindmetodun orijinal obyekt kontekstində icra olunmasını təmin edir. - Funksiyaların qismən tətbiqi (Currying): Orijinal funksiyanın başlanğıc argumentlərini sabitləşdirən yeni funksiya yaratmağa imkan verir.
Kontekstin sabitləşdirilməsinə nümunə:
class MyClass {
constructor() {
this.name = 'MyClass Instance';
}
greet() {
console.log(`Salam, ${this.name}`);
}
}
const instance = new MyClass();
const greetMethod = instance.greet;
// greetMethod, qlobal kontekstdə (və ya strict modda undefined) çağırılırsa, `this` MyClass deyil
greetMethod(); // Çıxış: Salam, undefined (və ya xəta)
const boundGreetMethod = instance.greet.bind(instance);
// boundGreetMethod, instance kontekstində çağırılır
boundGreetMethod(); // Çıxış: Salam, MyClass Instance
Qismən tətbiq nümunəsi:
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // Birinci arqumenti 2 olaraq təyin edir
console.log(multiplyByTwo(5)); // Çıxış: 10 (eyni zamanda multiply(2, 5))