Sobes.tech
Middle

Čime se razlikuje streličasta funkcija od obične imenovane funkcije?

sobes.tech АИ

Одговор од АИ

Funkcije sa strelicom u JavaScript-u razlikuju se od običnih imenovanih funkcija u nekoliko ključnih tačaka:

  • Kontekst this: Funkcije sa strelicom nemaju sopstveni this; nasleđuju this iz okoline leksičkog konteksta. Obične funkcije imaju svoj this, koji zavisi od načina poziva.
  • Nedostatak arguments: Funkcije sa strelicom nemaju objekat arguments. Za pristup argumentima, potrebno je koristiti parametre ili rest parametre.
  • Ne mogu se koristiti kao konstruktor: Funkcije sa strelicom ne mogu biti pozvane sa new.
  • Sintaksa: Funkcije sa strelicom su kraće i zgodnije za pisanje kratkih funkcija.

Primer:

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

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, jer `this` ne ukazuje na `obj`