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