Middle
Waarom mag je het sleutelwoord 'this' niet gebruiken in JavaScript?
sobes.tech AI
Antwoord van AI
this mag niet worden gebruikt in pijlfuncties om te binden aan de eigen context. Pijlfuncties creëren geen eigen this, maar erven de waarde ervan uit de scope waarin ze zijn gedefinieerd.
Ook is this onbetrouwbaar in callbacks van asynchrone operaties of eventhandlers zonder expliciete contextbinding (.bind(), .call(), .apply()), omdat de waarde ervan kan veranderen of de globale object worden (in niet-strikte modus) of undefined (in strikte modus).
Voorbeeld:
function traditioneleFunctie() {
console.log(this); // this hangt af van de aanroep
}
const pijlFunctie = () => {
console.log(this); // this erft uit de externe scope
};
const obj = {
methode: traditioneleFunctie
};
obj.methode(); // this - obj
traditioneleFunctie(); // this - globale object (window / global)
const obj2 = {
methode: pijlFunctie
};
obj2.methode(); // this - geërfd. Als gedefinieerd in globale scope, dan global/window.