ফাংশন, যা ফাংশন রিটার্ন করে জাভাস্ক্রিপ্টে

ধরুন আমাদের কাছে এইরকম একটি ফাংশন আছে, যা একটি স্ট্রিং রিটার্ন করে:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // আউটপুট হবে '!'

এখন একইভাবে, স্ট্রিং এর পরিবর্তে একটি অ্যানোনিমাস ফাংশন রিটার্ন করি:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

let result = func(); // result ভেরিয়েবলটিতে একটি ফাংশন থাকবে
console.log(result); // আউটপুট হবে 'function() {return '!';}'

যেমনটি আপনি দেখতে পাচ্ছেন, result ভেরিয়েবলটি এখন একটি ফাংশন। আসুন এটির আউটপুট কনসোলে দেখি। এর জন্য আমরা এটির পরে বন্ধনী ব্যবহার করব:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

let result = func();
console.log( result() ); // আউটপুট হবে '!'

যেহেতু func() কলটি একটি ফাংশন রিটার্ন করে, তাই আমরা অবিলম্বে এই রিটার্নকৃত ফাংশনটিকেও কল করতে পারি, এভাবে: func()() - প্রথম বন্ধনী জোড়া func ফাংশনের ফলাফল পায় (যা নিজেই একটি ফাংশন), এবং দ্বিতীয় বন্ধনী জোড়া func এর ফলাফলের উপর প্রয়োগ করা হয়।

আসুন চেষ্টা করি:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

console.log( func()() ); // আウটপুট হবে '!'
Задание 1

একটি func1 ফাংশন তৈরি করুন, যা এভাবে কল করা হলে: func1()(), নম্বর 1 রিটার্ন করবে। একইরকম একটি ফাংশন func2 তৈরি করুন, যা নম্বর 2 রিটার্ন করে। এই ফাংশনগুলির ফলাফলের যোগফল নির্ণয় করুন।