नामित फ़ंक्शन, लेकिन जावास्क्रिप्ट में फ़ंक्शन एक्सप्रेशन
आइए अब एक ऐसा फ़ंक्शन बनाते हैं जिसका नाम होगा, लेकिन फिर भी वह एक फ़ंक्शन एक्सप्रेशन होगा, क्योंकि यह एक एक्सप्रेशन में भाग लेता है:
+function func() {
console.log('!');
}
दिलचस्प बात यह है कि हम func नाम से
अपने फ़ंक्शन को कॉल नहीं कर सकते, इससे
त्रुटि होगी:
+function func() {
console.log('!');
}
func(); //!! त्रुटि देगा
अपने फ़ंक्शन को कॉल करने में सक्षम होने के लिए, इसे किसी चर को निर्दिष्ट करना होगा:
let test = function func() {
console.log('!');
};
test(); // '!' आउटपुट करेगा
एक बार फिर: एक फ़ंक्शन जो एक फ़ंक्शनल एक्सप्रेशन है, उसके नाम से कॉल नहीं की जा सकती। ऐसे फ़ंक्शन को केवल उस चर का उपयोग करके ही कॉल किया जा सकता है जिसमें यह फ़ंक्शन संग्रहीत किया गया था।
लेकिन फिर भी, एक फ़ंक्शनल एक्सप्रेशन में फ़ंक्शन का नाम हो सकता है, यह वाक्यविन्यास की दृष्टि से सही होगा। ऐसी आवश्यकता क्यों है, इस पर हम अगले पाठों में चर्चा करेंगे।
निष्कर्ष: फ़ंक्शन फ़ंक्शन डिक्लेरेशन या फ़ंक्शन एक्सप्रेशन इसलिए नहीं होते हैं क्योंकि उनके पास नाम है या नहीं है, बल्कि इसलिए होते हैं क्योंकि वे एक्सप्रेशन का हिस्सा हैं या नहीं हैं।
जैसा कि आपने ऊपर देखा, बिना नाम का फ़ंक्शन फ़ंक्शन डिक्लेरेशन के रूप में माना जा सकता है, और नाम वाला फ़ंक्शन फ़ंक्शन एक्सप्रेशन हो सकता है।