Funkcija su vardu, bet Function Expression JavaScripte

Dabar sukurkime funkciją, kuri turės vardą, bet tuo pačiu bus Function Expression, nes dalyvauja išraiškoje:

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

Įdomu tai, kad pagal vardą func mes negalesime kreiptis į mūsų funkciją, tai sukels klaidą:

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

func(); //!! išmes klaidą

Kad galėtume iškviesti mūsų funkciją, ji turi būti priskirta kokiam nors kintamajam:

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

test(); // išves '!'

Dar kartą: funkcija, kuri yra funkcinė išraiška, negali būti iškviesta pagal jos vardą. Tokia funkcija gali būti iškviesta tik naudojant kintamąjį, į kurį buvo įrašyta ta funkcija.

Tačiau vis dėlto, funkcinė išraiška gali turėti funkcijos vardą, tai bus sintaksiškai teisinga. Kam to reikia, nagrinėsime sekančiose pamokose.

Apibendrinkime: funkcijos yra Function Declaration arba Function Expression ne dėl to, kad turi vardą arba neturi, o dėl to, kad yra išraiškų dalyvės arba nėra.

Kaip matėte aukščiau, funkcija be vardo gali būti suvokiama kaip Function Declaration, o funkcija su vardu gali būti Function Expression.