Middle
JavaScriptda kontekstni saqlash usullari haqida gapir: bind, call, apply. Ular qanday farq qiladi?
sobes.tech AI
AIdan javob
JavaScriptda funksiyalar birinchi darajali obyektlar bo'lib, dinamik chaqirish kontekstiga (this) ega. bind, call va apply metodlari bu kontekstni boshqarishga imkon beradi:
-
call — funksiyani darhol chaqiradi, kontekst va argumentlarni alohida o'tkazadi.
func.call(context, arg1, arg2); -
apply — call ga o'xshash, ammo argumentlar massiv shaklida o'tkaziladi.
func.apply(context, [arg1, arg2]); -
bind — funksiyani darhol chaqirmaydi, balki bog'langan kontekst va ixtiyoriy qisman qo'llanilgan argumentlar bilan yangi funksiyani qaytaradi.
const boundFunc = func.bind(context, arg1); boundFunc(arg2);
Farqlar:
- call va apply funksiyani darhol chaqiradi;
- bind keyinchalik chaqirish uchun yangi funksiyani qaytaradi;
- apply argumentlar allaqachon massivda bo'lsa qulay;
- bind callbacklar va voqea ishlovchilarda kontekstni saqlash uchun foydalidir.