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