অবজেক্ট (Objects)
অবজেক্ট — সবকিছুরই মূল ভিত্তি (Objects — The Building Blocks of Everything)
অ্যারেকে যদি সারি করে রাখা লকার (০, ১, ২... নাম্বার দেওয়া) হিসেবে ভাবা হয়, তবে অবজেক্টগুলোকে নাম লেখা বা লেবেল করা ড্রয়ারসহ একটি ফাইলিং ক্যাবিনেটের মতো চিন্তা করতে পারেন। প্রতিটি ড্রয়ারের একটি নাম (কী (key)) থাকে এবং তার ভেতরে কিছু একটা (ভ্যালু বা মান (value)) থাকে।
অবজেক্ট আপনাকে একে অপরের সাথে যুক্ত ডেটাকে একসাথে রাখার সুযোগ দেয়। একটি গেমে একজন প্লেয়ার মানে কেবল তার একটি নাম বা তার স্কোর নয় — বরং তার নাম ও স্কোর দুটোই, সাথে তার বর্তমান লেভেল, তার কাছে থাকা জিনিসপত্র এবং আরও অনেক কিছু নিয়ে তার পরিচয়। অবজেক্ট আপনাকে এই সবকিছুকে সুন্দরভাবে এক জায়গায় সাজিয়ে রাখার সুযোগ করে দেয়।
জাভাস্ক্রিপ্টের একেবারে গভীরে গেলে প্রায় সবকিছুই এক একটি অবজেক্ট — অ্যারে, ফাংশন, তারিখ, এমনকি এরর বা ভুলগুলোও এর ব্যতিক্রম নয়। অবজেক্ট বুঝতে পারা মানেই আসল জাভাস্ক্রিপ্টকে বুঝতে পারা।
অবজেক্ট তৈরি এবং অ্যাক্সেস করা (Creating & Accessing Objects)
মেথড — যখন অবজেক্টগুলো কাজ করতে পারে (Methods — When Objects Can Do Things)
জাভাস্ক্রিপ্টে মেথড (method) হলো এমন একটি ফাংশন যা অবজেক্টের একটি প্রপার্টি হিসেবে সংরক্ষিত থাকে। এটি অবজেক্টগুলোকে শুধু ডেটা বা তথ্য ধরে রাখতেই সাহায্য করে না, তাদের দিয়ে বিভিন্ন কাজ করিয়ে নিতেও সাহায্য করে। যখন আপনি console.log() কল করেন, আপনি মূলত console অবজেক্টের log মেথডটিকেই কল করেন!
একটি মেথডের ভেতরে, this শব্দটি ঐ মেথডটি যে অবজেক্টের অন্তর্ভুক্ত তাকে নির্দেশ করে। এভাবেই মেথডটি বুঝতে পারে যে এটির ঠিক কোন অবজেক্টের ডেটা বা তথ্য ব্যবহার করা উচিত।
মেথড, কম্পিউটেড প্রোপার্টি এবং শর্টহ্যান্ড (Methods, Computed Properties & Shorthand)
ডিস্ট্রাকচারিং, স্প্রেড এবং কাজের মেথডসমূহ (Destructuring, Spread & Useful Methods)
অ্যারের মতোই অবজেক্টও সাপোর্ট বা সমর্থন করে ডিস্ট্রাকচারিং (destructuring) (প্রপার্টিগুলো টেনে ভ্যারিয়েবলে বের করে আনা) এবং স্প্রেড অপারেটর (spread operator) (অবজেক্টগুলো কপি করা বা একত্রে মেশানো)।
Object-এর ভেতরে সরাসরি তিনটি অত্যন্ত কার্যকরী স্ট্যাটিক মেথড (static method) থাকে:
Object.keys(obj)— সবগুলো কী-এর (key) নামের তালিকা বা অ্যারে রিটার্ন করেObject.values(obj)— অবজেক্টের সব ভ্যালু বা মানের তালিকা বা অ্যারে রিটার্ন করেObject.entries(obj)—[key, value]জোড়ার বা পেয়ারের একটি অ্যারে রিটার্ন করে (লুপ চালানোর জন্য দারুণ!)
ডিস্ট্রাকচারিং, স্প্রেড এবং Object.keys/values/entries
ছোট কুইজ
পড়া চালিয়ে যান