Անունով ֆունկցիա, բայց 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: