8.7 Class (ক্লাস)
Class হল অব্জেক্ট তৈরী করার টেম্পলেট। Class ডাটা এবং কোডকে Encapsulate করে। সহজ ভাষায় class এমন একটি টেমপ্লেট যেটি অনেকগুলো ভ্যারিয়েবল এবং ফাংশন দিয়ে তৈরী।
জাভাস্ক্রিপ্ট একটি প্রোটোটাইপ বেসড ল্যাঙ্গুয়েজে। জাভাস্ক্রিপ্টে প্রতিটি অবজেক্টে [[Prototype]] নামে একটা হিডেন প্রোপার্টি থাকে যেগুলো অবজেক্ট প্রোপার্টি এবং মেথডকে এক্সটেন্ড করতে ব্যবহৃত হয়। class প্রথম জাভাস্ক্রিপ্টে আসে ES6 আসার পর। জাভাস্ক্রিপ্টে class নতুন কোনো functionality নিয়ে না আসলেও প্রোটোটাইপ এবং ইনহেরিট্যান্স এর উপর “syntactical sugar” হিসেবে কাজ করে যা cleaner এবং maintainable কোড লিখতে সাহায্য করে।
constructor function :
function কীওয়ার্ড এর পরিবর্তে আমরা class কীওয়ার্ড ব্যবহার করতে পারি।
class এর প্রোপার্টিস constructor ফাংশন এসাইন হয়।
এখানে person1 এবং person2 person ক্লাসের অবজেক্ট।
জাভাস্ক্রিপ্ট class এ মেথড ডিফাইন করা খুব সহজ। মেথডের নামের শেষে () দিয়ে মেথড ডিক্লেয়ার করা হয়।
জাভাস্ক্রিপ্টে getter মেথড অব্জেক্টের ভ্যালু get এবং setter মেথড অবজেক্টের ভ্যালু set করতে ব্যবহৃত হয়.
Hoisting:
class ব্যাবহারের পূর্বে অবশই ডিফাইন করতে হবে । জাভাস্ক্রিপ্টের অন্য ফাংশন এবং ডিক্লারেশনের মত class hoisted নয় ।
উপরের কোড ব্লকটি এরর থ্রো করবে কারণ আমরা ডিফাইন এর পূর্বে একসেস করার চেষ্টা করতেসি।
class এর একটি গুরুত্বপূর্ণ ফীচার হল আমরা ক্লাসকে extend করে নতুন class তৈরী করতে পারি যা প্যারেন্ট class এর সব ফীচার ইনহেরিট করে। এতে করে কোড রেপিটেশন অনেক কম হয়। নতুন class এ কোনো অতিরিক্ত ফীচার দরকার হলে তাও অ্যাড করা সম্ভব।
-
ক্লাস ডিফাইনের আরেকরকম উপায় হলো ক্লাস এক্সপ্রেশন। যদি ক্লাসের কোনো নাম না দেয়া থাকে তাহলে এইটা name প্রপার্টি দিয়ে এক্সেস করা যাবে।
-
ক্লাস এক্সপ্রেশনে ক্লাসের নাম দিয়েও আমরা ক্লাস ডিফাইন করতে পারি।
-
আমরা চাইলে ক্লাসের মধ্যে একই সাথে getter এবং মেথড ব্যবহার করতে পারি।
-
জাভাস্ক্রীপ্টে static কিওয়ার্ড ব্যবহার করে ক্লাসের static মেথড অথবা প্রোপার্টি ডিফাইন করতে পারি। static মেথড অথবা প্রোপার্টি ক্লাসের instance তৈরী করা ছাড়াই এক্সেস করা যায়।
-
জাভাস্ক্রিপ্টে extends কিওয়ার্ড ব্যবহার করে একটি ক্লাসের চাইল্ড ক্লাসতৈরী করা হয়।
-
নিচের কোড স্নিপেটের আউটপুট কি হবে?
- নিচের কোড স্নিপেটের আউটপুট কি হবে?
- নিচের কোড স্নিপেটের আউটপুট কি হবে?
- নিচের কোড স্নিপেটের আউটপুট কি হবে?
- নিচের কোড স্নিপেটের আউটপুট কি হবে?