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