Функција са именом, али 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.