İsimli Fonksiyon, ancak JavaScript'te Fonksiyon İfadesi
Şimdi, ismi olan ancak bir ifadenin parçası olduğu için Fonksiyon İfadesi olacak bir fonksiyon yapalım:
+function func() {
console.log('!');
}
İlginçtir ki, func ismiyle
fonksiyonumuza erişemeyeceğiz, bu
bir hataya yol açacaktır:
+function func() {
console.log('!');
}
func(); //!! hata verecek
Fonksiyonumuzu çağırabilme yeteneğine sahip olmak için, onu bir değişkene atamalıyız:
let test = function func() {
console.log('!');
};
test(); // '!' yazdıracak
Bir kez daha: Fonksiyonel bir ifade olan fonksiyon, ismiyle çağrılamaz. Böyle bir fonksiyon sadece, fonksiyonun kaydedildiği değişken kullanılarak çağrılabilir.
Ancak yine de, fonksiyonel bir ifade fonksiyon ismine sahip olabilir, bu sentaktik olarak doğru olacaktır. Bunun neden gerekli olduğunu sonraki derslerde inceleyeceğiz.
Özetleyelim: Fonksiyonların Function Declaration veya Function Expression olması, isminin olup olmamasından değil, ifadelerin parçası olup olmamalarından kaynaklanır.
Yukarıda gördüğünüz gibi, isimsiz bir fonksiyon Function Declaration olarak algılanabilir, ve isimli bir fonksiyon Function Expression olabilir.