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