Middle
De ce nu trebuie să folosiți cuvântul cheie 'this' în JavaScript?
sobes.tech AI
Răspuns de la AI
this nu poate fi utilizat în funcțiile săgeată pentru a fi legat de propriul context. Funcțiile săgeată nu creează propriul this, ci moștenesc valoarea sa din domeniul în care au fost definite.
De asemenea, this este nesigur în callback-urile operațiunilor asincrone sau în handler-ele de evenimente fără o legare explicită a contextului (.bind(), .call(), .apply()), deoarece valoarea sa poate fi schimbată sau poate deveni obiectul global (în modul non-strict) sau undefined (în modul strict).
Exemplu:
function functieTradițională() {
console.log(this); // this depinde de apel
}
const functieSăgeată = () => {
console.log(this); // this moștenește din domeniul exterior
};
const obj = {
metodă: functieTradițională
};
obj.metodă(); // this - obj
functieTradițională(); // this - obiect global (window / global)
const obj2 = {
metodă: functieSăgeată
};
obj2.metodă(); // this - moștenit. Dacă definit în domeniul global, atunci global / window.