Middle
Vertel me over de manieren om de context te behouden in JavaScript: bind, call, apply. Hoe verschillen ze?
sobes.tech AI
Antwoord van AI
In JavaScript, functies zijn eerste-klas objecten en hebben een dynamische aanroepcontext (this). De methoden bind, call en apply maken het mogelijk om deze context te beheren:
-
call — roept de functie onmiddellijk aan, waarbij de context en argumenten apart worden doorgegeven.
func.call(context, arg1, arg2); -
apply — vergelijkbaar met call, maar de argumenten worden als array doorgegeven.
func.apply(context, [arg1, arg2]); -
bind — roept de functie niet onmiddellijk aan, maar geeft een nieuwe functie terug met de gebonden context en optioneel gedeeltelijk toegepaste argumenten.
const boundFunc = func.bind(context, arg1); boundFunc(arg2);
Verschillen:
- call en apply roepen de functie onmiddellijk aan;
- bind geeft een nieuwe functie die later kan worden aangeroepen;
- apply is handig wanneer de argumenten al in een array staan;
- bind is handig om de context te behouden in callbacks en event handlers.