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.