Sobes.tech
Junior — Middle

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, this se leksikalno nasleđuje iz okruženja, što znači da ne kreira sopstveni this kontekst. U običnim funkcijama, this zavisi od načina na koji je funkcija pozvana.

  • Nedostatak arguments: Funkcije sa strelicom nemaju sopstveni objekat arguments. 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.