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терде жана окуя иштетүүчүлөрүндө контекстти сактоо үчүн пайдалуу.