Sobes.tech
Middle

Care este diferența dintre o funcție săgeată și o funcție numită obișnuită?

sobes.tech AI

Răspuns de la AI

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

  • Contextul this: Funcțiile săgeată nu au propriul this; moștenesc this din contextul lexical înconjurător. Funcțiile normale au propriul this, care depinde de modul în care sunt apelate.
  • Lipsa arguments: Funcțiile săgeată nu au obiectul arguments. Pentru a accesa argumentele, trebuie să folosiți parametri sau parametri rest.
  • Nu pot fi folosite ca constructori: Funcțiile săgeată nu pot fi apelate cu new.
  • Sintaxă: Funcțiile săgeată sunt mai scurte și mai convenabile pentru scrierea funcțiilor scurte.

Exemplu:

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

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, deoarece `this` nu indică spre `obj`