Sobes.tech
Middle

JavaScriptте контекстти сактоо жолдору жөнүндө мага айтып бер: bind, call, apply. Алар кандай айырмаланат?

sobes.tech AI

AIден жооп

JavaScriptте функциялар биринчи даражадагы объекттер болуп саналат жана динамикалык чакыруу контекстине (this) ээ. bind, call жана apply методдору ушул контекстти башкарууга мүмкүндүк берет:

  • call — функцияны дароо чакырат, контекст жана аргументтерди бөлүп берет.

    func.call(context, arg1, arg2);
    
  • apply — callга окшош, бирок аргументтер массив түрүндө берилет.

    func.apply(context, [arg1, arg2]);
    
  • bind — функцияны дароо чакырбайт, ал эми байланып калган контекст жана, кааласа, жарым-жартылай колдонулган аргументтер менен жаңы функцияны кайтарат.

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

Аермалуулары:

  • call жана apply функцияны дароо чакырат;
  • bind кийинчерээк чакыруу үчүн жаңы функцияны кайтарат;
  • apply аргументтер алдын ала массивде болсо пайдалуу;
  • bind callbackтерде жана окуя иштетүүчүлөрүндө контекстти сактоо үчүн пайдалуу.