Sobes.tech
Junior — Middle

Cum se diferențiază utilizarea funcțiilor săgeată de funcțiile standard în JavaScript?

sobes.tech AI

Răspuns de la AI

Funcțiile săgeată în JavaScript diferă de funcțiile standard în mai multe puncte cheie:

  • Contextul this: În funcțiile săgeată, this este moștenit lexical din contextul înconjurător, adică nu creează propriul său context this. În funcțiile normale, this depinde de modul în care este apelată funcția.

  • Lipsa arguments: Funcțiile săgeată nu au propriul obiect arguments. Pentru a accesa argumentele, trebuie folosite parametri sau variabile externe.

  • Nu pot fi folosite ca constructor: Funcțiile săgeată nu pot fi apelate cu new, deoarece nu au metoda internă [[Construct]].

  • Sintaxă mai scurtă: Funcțiile săgeată sunt de obicei mai scurte și mai convenabile pentru scrierea funcțiilor scurte.

Exemplu:

const obj = {
  value: 10,
  regularFunc: function() {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // undefined sau valoarea din contextul extern
  }
};

obj.regularFunc(); // va afișa 10
obj.arrowFunc();   // va afișa undefined

Prin urmare, alegerea între funcția săgeată și funcția normală depinde de necesitatea gestionării contextului și de caracteristicile utilizării.