Sobes.tech
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:

  1. 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. bind metodun orijinal obyekt kontekstində icra olunmasını təmin edir.
  2. 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))