জাভাস্ক্রিপ্টে কনটেক্সট এবং স্কোপ একই নয়। একটি ফাংশন আহ্বান করার এর স্কোপ এবং কনটেক্সট দুটোই থাকে।
স্কোপ
একটি ভেরিয়েবলের স্কোপ হলো আপনার প্রোগ্রামের वह অঞ্চল যেখানে সেটি ডিফাইন করা হয়েছে। জাভাস্ক্রিপ্ট ভেরিয়েবলের কেবল দুটি স্কোপ আছে। গ্লোবাল ভেরিয়েবলের গ্লোবাল স্কোপ থাকে অর্থাৎ আপনার জাভাস্ক্রিপ্ট কোডের যেকোনো জায়গা থেকে ডিফাইন করা যায়। একটি লোকাল ভেরিয়েবল শুধু সেই ফাংশনের ভিতরে দৃশ্যমান থাকে যেখানে সেটি ডিফাইন করা হয়েছে। ফাংশন প্যারামিটারها সবসময় সেই ফাংশনের জন্য লোকাল থাকে।
কনটেক্সট
কনটেক্সট দেখায় একটি ফাংশন কীভাবে কল করা হয়েছে। একটি উদাহরণ দেখি -
উদাহরণ
var ob1 = {
display: function() {
return this;
}
};
ob1.display() === ob1;উপরের কোডটি true রিটার্ন করে যখন আপনি একটি ফাংশনকে একটি অবজেক্টের মেথড হিসেবে কল করেন। আমরা "this" কনটেক্সট দেখলাম, যা সেট করা হয়েছে সেটি যে অবজেক্টের ওপর মেথডটি কল করা হয়েছে।