Junior
Jaký je rozdíl mezi dvěma způsoby definice funkce?
sobes.tech AI
Odpověď od AI
Hlavní rozdíl je v kontextu this.
| Způsob definice funkce | Rozdíl |
|---|---|
deklarace funkce |
Kontext this je určen tím, jak je funkce volána. Je zvednuta před vykonáním kódu (hoisting). |
šipková funkce |
Kontext this dědí z okolního (lexikálního) kontextu. Není zvednuta (bez hoistingu). |
// deklarace funkce
function obycFunkce() {
console.log(this); // `this` závisí na volání
}
// šipková funkce
const sipFunkce = () => {
console.log(this); // `this` dědí z kontextu, ve kterém je funkce definována
};
Šipkové funkce nemají vlastní objekt arguments (je převzat z vnějšího kontextu) a nemohou být použity jako konstruktory s operátorem new.