Sobes.tech
Middle

JavaScript-də konteksti saxlama üsulları haqqında danış: bind, call, apply. Onlar necə fərqlənir?

sobes.tech Süni İntellekt

AI-dan cavab

JavaScript-də funksiyalar birinci dərəcəli obyektlərdir və dinamik çağırış kontekstinə (this) malikdirlər. bind, call və apply metodları bu konteksti idarə etməyə imkan verir:

  • call — funksiyanı dərhal çağırır, kontekst və arqumentləri ayrı-ayrılıqda ötürür.

    func.call(context, arg1, arg2);
    
  • apply — call-a bənzəyir, lakin arqumentlər massiv kimi ötürülür.

    func.apply(context, [arg1, arg2]);
    
  • bind — funksiyanı dərhal çağırmır, əvəzində bağlanmış kontekst və qismən tətbiq olunmuş arqumentlərlə yeni funksiya qaytarır.

    const boundFunc = func.bind(context, arg1);
    boundFunc(arg2);
    

Fərqlər:

  • call və apply funksiyanı dərhal çağırır;
  • bind daha sonra çağırmaq üçün yeni funksiya qaytarır;
  • apply arqumentlər artıq massivdədirsə, faydalıdır;
  • bind geri çağırmalarda və hadisə idarəedicilərində konteksti saxlamaq üçün faydalıdır.