ফাংশন, যা ফাংশন রিটার্ন করে জাভাস্ক্রিপ্টে
ধরুন আমাদের কাছে এইরকম একটি ফাংশন আছে, যা একটি স্ট্রিং রিটার্ন করে:
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 রিটার্ন করে।
এই ফাংশনগুলির ফলাফলের যোগফল নির্ণয় করুন।