Junior
Kāda ir atšķirība starp diviem veidiem, kā definēt funkciju?
sobes.tech AI
Atbilde no AI
Galvenā atšķirība ir this kontekstā.
| Funkcijas definēšanas veids | Atšķirība |
|---|---|
funkcijas deklarācija |
this konteksts tiek noteikts pēc tā, kā funkcija tiek izsaukta. Tā tiek pacelta pirms koda izpildes (hoisting). |
līnijas funkcija |
this konteksts mantojas no apkārtējā (lexikālā) konteksta. Nav pacelta (bez hoisting). |
// funkcijas deklarācija
function parastaFunkcija() {
console.log(this); // `this` ir atkarīgs no izsaukuma
}
// līnijas funkcija
const līnijasFunkcija = () => {
console.log(this); // `this` mantojas no konteksta, kurā funkcija ir definēta
};
Līnijas funkcijas arī nav savs arguments objekts (tas tiek ņemts no ārējā konteksta) un tās nevar izmantot kā konstruktorus ar new operatoru.