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