Junior
İki funksiyanı təyin etmənin iki yolu arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Əsas fərq this kontekstidir.
| Funksiya təyin etmə üsulu | Fərq |
|---|---|
funksiya bəyanatı |
this konteksti, funksiyanın necə çağırıldığına görə müəyyən edilir. Kodun icrasından əvvəl yuxarı qaldırılır (hoisting). |
ox funksiyası |
this konteksti, ətraf mühit (lexical) kontekstdən miras alınır. Yüksəldilmir (hoisting yox). |
// funksiya bəyanatı
function adiFunksiya() {
console.log(this); // `this` çağırışa bağlıdır
}
// ox funksiyası
const oxFunksiya = () => {
console.log(this); // `this` funksiyanın təyin olunduğu kontekstdən miras alınır
};
Ox funksiyaları öz arguments obyektinə də malik deyil (xarici kontekstdən götürülür) və new operatoru ilə konstruktor kimi istifadə edilə bilməz.