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ă,thiseste moștenit lexical din contextul înconjurător, adică nu creează propriul său contextthis. În funcțiile normale,thisdepinde de modul în care este apelată funcția. -
Lipsa
arguments: Funcțiile săgeată nu au propriul obiectarguments. 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.