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

ধরুন আমাদের কাছে একটি ফাংশন আছে যা প্যারামিটার হিসেবে দুটি সংখ্যা নেয় এবং এই সংখ্যাগুলির বর্গের সমষ্টি ফেরত দেয়:

javascriptfunction func(num1, num2) {
  return num1 * num1 + num2 * num2;
}

console.log(func(2, 3)); // 13 দেখাবে (ফলাফল 2 * 2 + 3 * 3)

চলুন বর্গ করার অপারেশনটি একটি সহায়ক ফাংশন square-এ স্থানান্তর করি:

javascriptfunction square(num) {
  return num * num;
}

function func(num1, num2) {
  return square(num1) + square(num2);
}

console.log(func(2, 3)); // 13 দেখাবে

ধরুন আমরা নিশ্চিত যে square ফাংশনটি শুধুমাত্র func ফাংশনেই ব্যবহার হবে এবং অন্য কোনটিতে নয়।

এই ক্ষেত্রে এটিকে এমনভাবে তৈরি করা সুবিধাজনক হবে, যাতে কেউই accidentally এটি ব্যবহার না করে (আপনি নিজে বা আপনার সাথে কাজ করা অন্য কোন প্রোগ্রামার)।

জাভাস্ক্রিপ্টে একটি elegant সমাধান আছে: আমাদের সহায়ক ফাংশন square-কে func-এর ভিতরে placed করা যেতে পারে। এই ক্ষেত্রে আমাদের সহায়ক ফাংশনটি শুধুমাত্র func-এর ভিতরে accessible থাকবে, এবং বাইরে থেকে - থাকবে না।

এটি করা যাক:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(func(2, 3)); // 13 দেখাবে

func-এর বাইরে থেকে square-কে call করার চেষ্টা করলে error হবে:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(square(2)); //!! error দেবে
Задание 1

func নামে একটি ফাংশন তৈরি করুন, যা প্যারামিটার হিসেবে দুটি সংখ্যা নেবে, এবং প্রথম সংখ্যার বর্গের সাথে দ্বিতীয় সংখ্যার cube-এর যোগফল ফেরত দেবে। এর জন্য একটি সহায়ক ফাংশন square তৈরি করুন, যা একটি সংখ্যাকে বর্গ করে, এবং একটি সহায়ক ফাংশন cube তৈরি করুন, যা একটি সংখ্যাকে cube করে।