Функсия бо Ном, аммо Function Expression дар JavaScript
Биёед акнун функсиеро созем, ки ном дошта бошад, вале дар ҳоле, ки Function Expression бошад, зеро дар ибора иштирок мекунад:
+function func() {
console.log('!');
}
Интерес аст, ки ба номи func мо
наметавонем ба функсияи худ муроҷиат кунем, ин ба
хато бовар мекунад:
+function func() {
console.log('!');
}
func(); //!! хатогӣ медиҳад
Барои имконияти даъват кардани функсияи мо, онро бояд ба ягон тағирёбанда таъин кунем:
let test = function func() {
console.log('!');
};
test(); // '!'-ро чоп мекунад
Боз як бор: функсия, ки ифодаи функсионалӣ мебошад, наметавонад ба номаш даъват шавад. Чунин функсия метавонад танҳо бо истифодаи тағирёбандае, ки ин функсия ба он навишта шудааст, даъват шавад.
Вале бо вуҷуди ин, ифодаи функсионалӣ метавонад номи функсия дошта бошад, ин аз назари синтаксӣ дуруст хоҳад буд. Барои чӣ лозим аст, мо дар дарсҳои оянда таҳлил мекунем.
Хулоса: функсияҳо Function Declaration ё Function Expression намебошанд, зеро ки ном доранд ё надоранд, балки зеро ки дар ифодаҳо иштирок мекунанд ё намекунанд.
Чунон ки шумо дар боло дидед, функсия бе ном метавонад чун Function Declaration фаҳмида шавад, ва функсия бо ном метавонад Function Expression бошад.