Функција са именом, али Function Expression у JavaScript-у

Хајде сада да направимо функцију која ће имати име, али ће при томе бити Function Expression, јер учествује у изразу:

javascript+function func() {
  console.log('!');
}

Занимљиво је што се по имену func ми не ћемо моћи обратити нашој функцији, то ће доводити до грешке:

javascript+function func() {
  console.log('!');
}

func(); //!! даће грешку

Да бисмо имали могућност да позовемо нашу функцију, треба да је доделимо некој променљивој:

javascriptlet test = function func() {
  console.log('!');
};

test(); // исписаће '!'

Још једном: функција која је функцијски израз не може бити позвана по свом имену. Таква функција може бити позвана само коришћењем променљиве у коју је била записана та функција.

Али ипак, функцијски израз може имати име функције, то ће бити синтаксички исправно. Зашто је то потребно, размотрићемо у наредним лекцијама.

Резимирајмо: функције су Function Declaration или Function Expression не зато, што имају име или немају, већ зато што учествују у изразима или не учествују.

Као што сте видели горе, функција без имена може бити схваћена као Function Declaration, а функција са именом може бити Function Expression.