জাভাস্ক্রিপ্ট নেটিভলি ক্লাস সমর্থন করে না (ES6 ক্লাস আসার আগে), তাই মডিউল প্যাটার্ন ব্যবহার করা হয়। এটি পাবলিক, প্রাইভেট মেথড এবং ভেরিয়েবল একটি অবজেক্টে সংরক্ষণের জন্য। এটি বুঝতে আমরা অ্যানোনিমাস ক্লোজার (Anonymous closure) ব্যবহার করব, যাতে ১৮ বছরের বয়স মানদণ্ড পূরণ না করার কারণে বंचিত ভোটাররা প্রদর্শিত হয়।
উদাহরণ
জাভাস্ক্রিপ্ট মডিউল প্যাটার্ন বুঝতে নিচের কোডটি চালান:
<!DOCTYPE html> <html> <body> <script> (function () { var votersAge = [15, 50, 27, 17, 22, 87, 65, 45]; var average = function() { var total = votersAge.reduce(function(accumulator, age) { return accumulator + age}, 0); return total / votersAge.length + '.'; } var notQualified = function(){ var notAdult = votersAge.filter(function(age) { return age < 18;}); return 'ভোট দিতে অযোগ্য ভোটার (১৮ বছরের নিচে বয়স) = ' + notAdult.length; } document.write(notQualified()); }()); </script> </body> </html>
ব্যাখ্যা: IIFE (Immediately Invoked Function Expression) (function(){ ... })() দিয়ে প্রাইভেট স্কোপ তৈরি করা হয়েছে। votersAge, average, notQualified বাইর থেকে অ্যাক্সেসযোগ্য নয় (এনক্যাপসুলেশন)। শুধু notQualified()-এর রিটার্ন মান প্রিন্ট করা হয়েছে। ES6 মডিউল (import/export) বর্তমানে স্ট্যান্ডার্ড।