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