Sobes.tech
Junior

Milline on erinevus kahe funktsiooni määramise viisi vahel?

sobes.tech AI

Vastus AI-lt

Peamine erinevus on this kontekst.

Funktsiooni määratlemise viis Erinevus
funktsiooni deklaratsioon this kontekst määratakse selle järgi, kuidas funktsiooni kutsutakse. See tõstetakse enne koodi täitmist (hoisting).
noolefunktsioon this kontekst pärandub ümbritsevast (lexical) kontekstist. Ei tõsta (ilma hoistingita).
// funktsiooni deklaratsioon
function tavalineFunktsioon() {
  console.log(this); // `this` sõltub kutsest
}

// noolefunktsioon
const nooleFunktsioon = () => {
  console.log(this); // `this` pärandub funktsiooni defineerimise kontekstist
};

Noolefunktsioonidel ei ole oma arguments objekti (see võetakse välisest kontekstist) ning neid ei saa kasutada konstruktoritena new operaatoriga.