जावास्क्रिप्ट में नेस्टेड फंक्शन
मान लीजिए कि हमारे पास एक फंक्शन है, जो दो नंबर पैरामीटर के रूप में लेता है और उन नंबरों के वर्गों का योग लौटाता है:
function func(num1, num2) {
return num1 * num1 + num2 * num2;
}
console.log(func(2, 3)); // 13 प्रिंट करेगा (2 * 2 + 3 * 3 का परिणाम)
आइए वर्ग (square) बनाने के ऑपरेशन को
एक सहायक फंक्शन square में अलग करें:
function square(num) {
return num * num;
}
function func(num1, num2) {
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13 प्रिंट करेगा
मान लीजिए कि हमें यकीन है कि फंक्शन square
का उपयोग केवल फंक्शन func में ही होगा
और किसी और में नहीं।
ऐसे में यह सुविधाजनक होगा कि इसे कोई भी गलती से उपयोग न कर पाए (आप खुद या आपके साथ काम करने वाला कोई अन्य प्रोग्रामर)।
जावास्क्रिप्ट में एक सुरुचिपूर्ण समाधान है: हम
अपने सहायक फंक्शन square को
func के अंदर रख सकते हैं। ऐसा करने पर
हमारा सहायक फंक्शन केवल
func के अंदर ही उपलब्ध होगा,
और बाहर - नहीं होगा।
आइए इसे करके देखें:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(func(2, 3)); // 13 प्रिंट करेगा
func के बाहर square को कॉल करने का प्रयास
एरर देगा:
function func(num1, num2) {
function square(num) {
return num * num;
}
return square(num1) + square(num2);
}
console.log(square(2)); //!! एरर देगा
फंक्शन func बनाएं, जो पैरामीटर के रूप में
दो नंबर लेगा, और पहले नंबर के वर्ग और दूसरे नंबर के घन का योग लौटाएगा।
इसके लिए एक सहायक फंक्शन
square बनाएं, जो किसी नंबर का वर्ग करे,
और एक सहायक फंक्शन cube बनाएं, जो किसी नंबर का घन (क्यूब) करे।