Sobes.tech
Junior — Middle

Ako sa líši použitie šípových funkcií od štandardných funkcií v JavaScripte?

sobes.tech AI

Odpoveď od AI

Šipkové funkcie v JavaScripte sa líšia od štandardných funkcií v niekoľkých kľúčových bodoch:

  • Kontext this: U šipkových funkcií je this lexikálne dediť z okolia, čo znamená, že nevytvára vlastný this kontext. U bežných funkcií závisí this od spôsobu, akým je funkcia volaná.

  • Chýba arguments: Šipkové funkcie nemajú vlastný objekt arguments. Na prístup k argumentom je potrebné použiť parametre alebo vonkajšie premenné.

  • Nie je možné ich použiť ako konštruktor: Šipkové funkcie nemôžu byť volané s new, pretože nemajú vnútornú metódu [[Construct]].

  • Kratšia syntax: Šipkové funkcie sú zvyčajne kratšie a pohodlnejšie na písanie krátkych funkcií.

Príklad:

const obj = {
  value: 10,
  regularFunc: function() {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // undefined alebo hodnota z vonkajšieho kontextu
  }
};

obj.regularFunc(); // vypíše 10
obj.arrowFunc();   // vypíše undefined

Takže voľba medzi šipkovou a bežnou funkciou závisí od potreby riadenia kontextu a vlastností použitia.