জাভাস্ক্রিপ্টে ফাংশনের বাহ্যিক ভেরিয়েবলে অ্যাক্সেস

নিম্নলিখিত কোডটি বিবেচনা করা যাক:

javascriptlet num = 1; // ভেরিয়েবলের মান সেট করুন

function func() {
  console.log(num); // এটি কনসোলে প্রদর্শন করুন
}

func(); // ফাংশন কল করুন

যেমনটি আমি আগেই উল্লেখ করেছি, ভেরিয়েবলের মান অগত্যা ফাংশন সংজ্ঞার আগে থাকতে হবে না, প্রধান জিনিস হল এটি যেন ফাংশন কলের আগে থাকে:

javascriptfunction func() {
  console.log(num);
}

let num = 1;
func();

আসলে এটি পুরোপুরি সত্য নয়। আমাদের ফাংশন এমনকি তার কলের আগেই ভেরিয়েবলের মান জানে num:

javascriptlet num = 1;

function func() {
  console.log(num); // ফাংশন ইতিমধ্যেই জানে যে num = 1
}

এখানে একটি আরও জটিল উদাহরণ:

javascriptlet num = 1; // এই মুহুর্তে ফাংশনটি জানতে পারে যে num = 1

function func() {
  console.log(num);
}

num = 2; // এই মুহুর্তে ফাংশনটি জানতে পারে যে num = 2

ফাংশন কল যোগ করা যাক:

javascriptlet num = 1; // এই মুহুর্তে ফাংশনটি জানতে পারে যে num = 1
func(); // 1 প্রদর্শন করবে

function func() {
  console.log(num);
}

func(); // 1 প্রদর্শন করবে
num = 2; // এই মুহুর্তে ফাংশনটি জানতে পারে যে num = 2
func(); // 2 প্রদর্শন করবে

আবার বলছি: আসলে ফাংশনটি বাহ্যিক ভেরিয়েবলের মান জানে, এমনকি সেগুলি কল না করেও।