Junior
Ի՞նչ է տարբերությունը երկու տարբերակների միջև ֆունկցիայի սահմանման։
sobes.tech AI
Պատասխան AI-ից
Հիմնական տարբերությունը this կոնտեքստն է:
| Ֆունկցիայի սահմանման եղանակը | Տարբերություն |
|---|---|
ֆունկցիայի հայտարարում |
this կոնտեքստը որոշվում է այն կերպով, ինչպես է ֆունկցիան կանչվում: Այն բարձրանում է առանց կոդի կատարման (hoisting): |
քայլային ֆունկցիա |
this կոնտեքստը ժառանգվում է շրջակա (լեքսիկ) կոնտեքստից: Չի բարձրանում (չկա hoisting): |
// ֆունկցիայի հայտարարում
function սովորականՖունկցիա() {
console.log(this); // `this` կախված է կանչից
}
// քայլային ֆունկցիա
const քայլՖունկցիա = () => {
console.log(this); // `this` ժառանգվում է ֆունկցիայի սահմանման կոնտեքստից
};
Քայլային ֆունկցիաները չունեն սեփական arguments օբյեկտը (նա վերցվում է արտաքին կոնտեքստից) և չեն կարող օգտագործվել որպես կոնստրուկտորներ new օպերատորով: