Funksion me emër, por Function Expression në JavaScript
Tani le të bëjmë një funksion që do të ketë emër, por në të njëjtën kohë do të jetë Function Expression, sepse merr pjesë në një shprehje:
+function func() {
console.log('!');
}
Është interesante që me emrin func ne
nuk do të jemi në gjendje t'i drejtohemi funksionit tonë, kjo do të
shkaktojë gabim:
+function func() {
console.log('!');
}
func(); //!! do të japë gabim
Për të qenë në gjendje të thirrim funksionin tonë, ai duhet t'i caktohet ndonjë ndryshoreje:
let test = function func() {
console.log('!');
};
test(); // do të shfaqë '!'
Edhe një herë: funksioni që është shprehje funksionale nuk mund të thirret me emrin e tij. Një funksion i tillë mund të thirret vetëm duke përdorur variablin në të cilin u regjistrua ky funksion.
Por megjithatë, shprehja funksionale mund të ketë emër funksioni, kjo do të jetë sintaksore korrekte. Pse nevojitet kjo, do të shqyrtojmë në mësimet në vijim.
Le të përmbledhim: funksionet janë Function Declaration ose Function Expression jo sepse kanë emër ose nuk kanë, por sepse janë pjesëmarrës në shprehje ose jo.
Siç e patë më lart, një funksion pa emër mund të perceptohet si Function Declaration, ndërsa një funksion me emër mund të jetë Function Expression.