Kaip skiriasi rodyklės funkcijų naudojimas nuo standartinių funkcijų JavaScript?
sobes.tech AI
Atsakymas iš AI
„JavaScript“ strėlinės funkcijos skiriasi nuo standartinių funkcijų keliuose pagrindiniuose aspektuose:
-
thiskontekstas: Strėlinėse funkcijosethisleksikografiškai paveldimas iš aplinkos konteksto, tai yra, jos nesukuria savothiskonteksto. Įprastose funkcijosethispriklauso nuo to, kaip funkcija yra iškviečiama. -
argumentsnebuvimas: Strėlinės funkcijos neturi savoargumentsobjekto. Norint pasiekti argumentus, reikia naudoti parametrus arba išorines kintamąsias. -
Negalima naudoti kaip konstruktoriaus: Strėlinės funkcijos negali būti iškviestos su
new, nes jos neturi vidinio [[Construct]] metodo. -
Trumpesnė sintaksė: Strėlinės funkcijos dažniausiai yra trumpesnės ir patogesnės rašyti trumpas funkcijas.
Pavyzdys:
const obj = {
value: 10,
regularFunc: function() {
console.log(this.value); // 10
},
arrowFunc: () => {
console.log(this.value); // neapibrėžta arba išorinės aplinkos reikšmė
}
};
obj.regularFunc(); // išves 10
obj.arrowFunc(); // išves undefined
Taigi, pasirinkimas tarp strėlinės ir įprastos funkcijos priklauso nuo poreikio valdyti kontekstą ir naudojimo ypatybių.