Sobes.tech
Middle

Live codering: bepaal de uitvoer in de console voor code met functies, pijlfuncties, objecten en context (this), call/bind

sobes.tech AI

Antwoord van AI

In JavaScript hangt de uitvoeringscontext (this) af van de manier waarop de functie wordt aangeroepen. Pijlfuncties hebben geen eigen this — ze erven het uit de externe lexicale omgeving.

Voorbeeld:

const obj = {
  value: 42,
  regularFunc: function() {
    console.log(this.value);
  },
  arrowFunc: () => {
    console.log(this.value);
  }
};

obj.regularFunc(); // 42 — this verwijst naar obj
obj.arrowFunc();   // undefined of de waarde uit de externe context (bijvoorbeeld window.value)

// Gebruik van call/bind:
function show() {
  console.log(this.name);
}

const user = { name: 'Alice' };

show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice

Dus, call en bind maken het mogelijk om this expliciet in te stellen bij het aanroepen van de functie, maar werken niet met pijlfuncties, omdat hun this lexicaal vastligt.