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í jethislexikálne dediť z okolia, čo znamená, že nevytvára vlastnýthiskontext. U bežných funkcií závisíthisod spôsobu, akým je funkcia volaná. -
Chýba
arguments: Šipkové funkcie nemajú vlastný objektarguments. 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.