Sobes.tech
Junior

Care este diferența dintre cele două moduri de a defini o funcție?

sobes.tech AI

Răspuns de la AI

Principalul diferență este contextul this.

Mod de definire a funcției Diferență
declarație de funcție Contextul this este determinat de modul în care este apelată funcția. Este ridicat înainte de execuția codului (hoisting).
funcție săgeată Contextul this moștenește din contextul înconjurător (lexical). Nu se ridică (fără hoisting).
// declarație de funcție
function funcțieObișnuită() {
  console.log(this); // `this` depinde de apel
}

// funcție săgeată
const funcțieSăgeată = () => {
  console.log(this); // `this` moștenește din contextul în care este definită funcția
};

Funcțiile săgeată nu au propriul obiect arguments (se ia din contextul extern) și nu pot fi folosite ca constructori cu operatorul new.