დასახელებული ფუნქცია, მაგრამ 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.