जावास्क्रिप्ट में पैरामीटर के रूप में फ़ंक्शन पास करना
फ़ंक्शन, संख्याओं, स्ट्रिंग्स और ऐरे की तरह, दूसरे फ़ंक्शन में पैरामीटर के रूप में पास किए जा सकते हैं।
आइए एक व्यावहारिक उदाहरण पर विस्तार से विचार करें।
मान लीजिए कि हमारे पास एक फ़ंक्शन test है, जो
दो पैरामीटर लेता है:
test(पैरामीटर1, पैरामीटर2);
आइए फ़ंक्शन test के पहले पैरामीटर में
एक अनाम फ़ंक्शन पास करें, जो
1 लौटाता है, और दूसरे पैरामीटर में - एक अनाम
फ़ंक्शन, जो 2 लौटाता है:
test(
function() {return 1;},
function() {return 2;}
);
ऊपर दिया गया कोड अभी तक काम नहीं कर रहा है, क्योंकि हमने खुद फ़ंक्शन नहीं बनाया है। आइए इसे बनाएं:
function test(func1, func2) {
}
फ़ंक्शन को परिभाषित करते समय हमने दो पैरामीटर निर्दिष्ट किए
- func1 और func2। ये पैरामीटर
इस बारे में कुछ नहीं जानते कि उनमें क्या पास किया जाएगा।
हम, उदाहरण के लिए, संख्याएं पास कर सकते हैं:
test(1, 2); // फ़ंक्शन को कॉल करें
function test(func1, func2) {
console.log(func1); // 1 प्रिंट करेगा
console.log(func2); // 2 प्रिंट करेगा
}
या हम फ़ंक्शन पास कर सकते हैं:
test(
function() {return 1;}, // पहला पैरामीटर
function() {return 2;} // दूसरा पैरामीटर
);
function test(func1, func2) {
console.log(func1); // 'function() {return 1;}' प्रिंट करेगा
console.log(func2); // 'function() {return 2;}' प्रिंट करेगा
}
जैसा कि आप देख रहे हैं, अब कंसोल में फ़ंक्शन का सोर्स कोड प्रिंट होता है। आइए इसे ऐसा बनाएं कि यह उनके परिणाम प्रिंट करे। इसके लिए फ़ंक्शन के साथ गोल कोष्ठक लगाएं:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // 1 प्रिंट करेगा
console.log( func2() ); // 2 प्रिंट करेगा
}
आइए पहले और दूसरे फ़ंक्शन के परिणामों का योग कंसोल में प्रिंट कराएं:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // 3 प्रिंट करेगा
}
फ़ंक्शन test बनाएं, जो पैरामीटर के रूप में
3 फ़ंक्शन लेता है। इसमें
पहले पैरामीटर के रूप में एक ऐसा फ़ंक्शन पास करें जो
1 लौटाता है, दूसरे के रूप में - एक ऐसा फ़ंक्शन जो
2 लौटाता है, तीसरे के रूप में - एक ऐसा फ़ंक्शन जो
3 लौटाता है। फ़ंक्शन के परिणामों का योग
कंसोल में प्रिंट करें।