Sobes.tech
Junior

Mi a különbség a két függvénydefinálási mód között?

sobes.tech MI

Válasz az MI-től

A fő különbség a this kontextus.

Funkciódefiníciós mód Különbség
függvény deklaráció A this kontextus attól függ, hogyan hívják meg a függvényt. A kód futtatása előtt fel van emelve (hoisting).
nyílfüggvény A this kontextus öröklődik a környező (lexikális) kontextusból. Nem emelkedik fel (nincs hoisting).
// függvény deklaráció
function szokásosFüggvény() {
  console.log(this); // `this` a hívástól függ
}

// nyílfüggvény
const nyilFüggvény = () => {
  console.log(this); // `this` öröklődik a függvény definiálási környezetéből
};

A nyílfüggvények saját arguments objektummal sem rendelkeznek (külső kontextusból veszik), és nem használhatók konstruktorként a new operátorral.