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.