Sobes.tech
Junior

Ի՞նչ է տարբերությունը երկու տարբերակների միջև ֆունկցիայի սահմանման։

sobes.tech AI

Պատասխան AI-ից

Հիմնական տարբերությունը this կոնտեքստն է:

Ֆունկցիայի սահմանման եղանակը Տարբերություն
ֆունկցիայի հայտարարում this կոնտեքստը որոշվում է այն կերպով, ինչպես է ֆունկցիան կանչվում: Այն բարձրանում է առանց կոդի կատարման (hoisting):
քայլային ֆունկցիա this կոնտեքստը ժառանգվում է շրջակա (լեքսիկ) կոնտեքստից: Չի բարձրանում (չկա hoisting):
// ֆունկցիայի հայտարարում
function սովորականՖունկցիա() {
  console.log(this); // `this` կախված է կանչից
}

// քայլային ֆունկցիա
const քայլՖունկցիա = () => {
  console.log(this); // `this` ժառանգվում է ֆունկցիայի սահմանման կոնտեքստից
};

Քայլային ֆունկցիաները չունեն սեփական arguments օբյեկտը (նա վերցվում է արտաքին կոնտեքստից) և չեն կարող օգտագործվել որպես կոնստրուկտորներ new օպերատորով: