Junior
Aký je rozdiel medzi dvoma spôsobmi definovania funkcie?
sobes.tech AI
Odpoveď od AI
Hlavný rozdiel je v kontexte this.
| Spôsob definície funkcie | Rozdiel |
|---|---|
deklarácia funkcie |
Kontext this je určený spôsobom, akým je funkcia volaná. Je zdvihnutý pred vykonaním kódu (hoisting). |
šípková funkcia |
Kontext this dedí z okolia (lexikálneho) kontextu. Nie je zdvihnutý (bez hoistingu). |
// deklarácia funkcie
function obyčajnáFunkcia() {
console.log(this); // `this` závisí od volania
}
// šípková funkcia
const šípFunkcia = () => {
console.log(this); // `this` dedí z kontextu, v ktorom je funkcia definovaná
};
Šípkové funkcie nemajú vlastný objekt arguments (berie sa z vonkajšieho kontextu) a nemôžu byť použité ako konštruktory s operátorom new.