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.