Sobes.tech
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.