Kako se razlikuje korišćenje streličastih funkcija od standardnih funkcija u JavaScriptu?
sobes.tech АИ
Одговор од АИ
Funkcije sa strelicom u JavaScript-u razlikuju se od standardnih funkcija u nekoliko ključnih tačaka:
-
Kontekst
this: U funkcijama sa strelicom,thisse leksikalno nasleđuje iz okruženja, što znači da ne kreira sopstvenithiskontekst. U običnim funkcijama,thiszavisi od načina na koji je funkcija pozvana. -
Nedostatak
arguments: Funkcije sa strelicom nemaju sopstveni objekatarguments. Za pristup argumentima, treba koristiti parametre ili spoljne promenljive. -
Ne mogu se koristiti kao konstruktor: Funkcije sa strelicom ne mogu biti pozvane sa
new, jer nemaju internu metodu [[Construct]]. -
Kraći sintaks: Funkcije sa strelicom su uglavnom kraće i zgodnije za pisanje kratkih funkcija.
Primer:
const obj = {
value: 10,
regularFunc: function() {
console.log(this.value); // 10
},
arrowFunc: () => {
console.log(this.value); // undefined ili vrednost iz spoljnog konteksta
}
};
obj.regularFunc(); // ispisuje 10
obj.arrowFunc(); // ispisuje undefined
Dakle, izbor između strelične i obične funkcije zavisi od potrebe za upravljanje kontekstom i karakteristika korišćenja.