জাভাস্ক্রিপ্ট প্রোটোটাইপের উপর ভিত্তি করে। প্রতিবার যখন আপনি একটি বস্তু ঘোষণা করেন, একটি প্রোটোটাইপ সম্পত্তি তৈরি হয় যা সেই বস্তুর সাথে সম্পর্কিত বৈশিষ্ট্য এবং পদ্ধতিগুলিকে প্রসারিত করে।
গত কয়েক বছর ধরে, অনেক জাভাস্ক্রিপ্ট ডেভেলপার তাদের কোডে অবজেক্ট-ওরিয়েন্টেড ডিজাইন অন্তর্ভুক্ত করার উপায় খুঁজছেন। এটি জাভাস্ক্রিপ্টে একটি ক্লাস নামে একটি নতুন ধরনের বস্তুর জন্ম দিয়েছে, যা একটি প্রোটোটাইপকে প্রসারিত করে।
এই নির্দেশিকায়, আমরা আলোচনা করতে যাচ্ছি যে ক্লাসগুলি কী, কেন সেগুলি ব্যবহার করা হয় এবং আপনি কীভাবে আপনার কোডে একটি ক্লাস বাস্তবায়ন করতে পারেন। ক্লাস শুরু করতে আপনাকে সাহায্য করার জন্য আমরা একটি উদাহরণ দিয়ে হেঁটে যাব।
জাভাস্ক্রিপ্ট ক্লাস কি?
ক্লাস একটি বস্তুর জন্য একটি টেমপ্লেট ঘোষণা করার একটি উপায়।
আপনি যদি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষার সাথে পরিচিত হন তবে আপনি জানতে পারবেন যে তারা ক্লাস এবং অবজেক্টের উপর অনেক বেশি নির্ভর করে। একটি শ্রেণী হল এক ধরণের ডেটার জন্য একটি ব্লুপ্রিন্টের মতো:এটি বলে যে কোন ডেটা সংরক্ষণ করা যেতে পারে এবং কোন পদ্ধতিতে এটি অ্যাক্সেস করতে পারে। একটি বস্তু সেই শ্রেণীর একটি উদাহরণ।
একটি ক্লাসের উদাহরণ হবে Book
. এই ক্লাসে বইগুলিতে কী তথ্য সংরক্ষণ করা যেতে পারে এবং কীভাবে সেই ডেটা পরিবর্তন করা যেতে পারে তার নীলনকশা থাকবে। একটি বস্তু হতে পারে একটি স্ট্রিটকার নামক ডিজায়ার, যা একটি স্বতন্ত্র বই।
জাভাস্ক্রিপ্টে, ক্লাসগুলিকে আমরা সিনট্যাকটিক চিনি বলি। ক্লাস সিনট্যাক্স খুব মিষ্টি, কিন্তু তারা অগত্যা কোনো নতুন কার্যকারিতা যোগ করে না।
ক্লাসগুলি সাধারণত আধুনিক জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক যেমন React এবং Next.js-এ ব্যবহৃত হয়।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগদানের পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
ক্লাস বনাম ফাংশন
আপনি যদি এই নিবন্ধটি থেকে একটি জিনিস মনে রাখবেন, তাহলে এটি হতে দিন:ক্লাসগুলি শুধুমাত্র স্বাভাবিক ফাংশন।
একটি ক্লাস এবং একটি ফাংশন এক্সপ্রেশনের মধ্যে পার্থক্য হল কিভাবে তারা ঘোষণা করা হয়; ফাংশন function
ব্যবহার করে কীওয়ার্ড এবং ক্লাস class
ব্যবহার করে কীওয়ার্ড প্রযুক্তিগতভাবে, আপনি ক্লাস কীওয়ার্ড ব্যবহার না করেও একটি ক্লাস ঘোষণা করতে পারেন।
আমরা বলতে পারি যে তারা দুটি ফাংশন তৈরি করে এবং তাদের প্রোটোটাইপ মুদ্রণ করে একই:
const PlayerFunction = function() {} const PlayerClass = class {} console.log(Object.getPrototypeOf(PlayerFunction)); console.log(Object.getPrototypeOf(PlayerClass));
আমাদের ক্লাস এক্সপ্রেশন এবং ফাংশন রিটার্ন করে:
ফাংশন ()
ফাংশন ()
আমাদের ফাংশন এবং ক্লাস উভয়ই একই প্রোটোটাইপ-ভিত্তিক আর্কিটেকচার ব্যবহার করে।
কীভাবে একটি ক্লাস সংজ্ঞায়িত করবেন
আপনি কিভাবে একটি ক্লাস সংজ্ঞায়িত করবেন? এটি একটি মহান প্রশ্ন.
আপনি class
ব্যবহার করে একটি ক্লাস সংজ্ঞায়িত করতে পারেন কীওয়ার্ড একবার আপনি একটি ক্লাস সংজ্ঞায়িত করার পরে, আপনি কিছু ডিফল্ট মান সহ এটি আরম্ভ করতে constructor() ফাংশন ব্যবহার করতে পারেন।
একটি জাভাস্ক্রিপ্ট কনসোল খুলুন এবং এই কোডে পেস্ট করুন:
class Book { constructor(title, author) { this.title = title; this.author = author; } }
এটি Book
নামে একটি ক্লাস তৈরি করে . আমাদের ক্লাস দুটি মান সংরক্ষণ করতে পারে, শিরোনাম এবং লেখক, যা আমরা আমাদের ক্লাস কনস্ট্রাক্টর পদ্ধতিতে সংজ্ঞায়িত করেছি। এই শ্রেণীর একটি বস্তু তৈরি করতে, আমরা এই কোডটি ব্যবহার করতে পারি:
var streetcar = new Book("A Streetcar Named Desire", "Tennessee Williams");
আমরা আমাদের ক্লাস থেকে মান পুনরুদ্ধার করতে পারি যেমন আমরা যেকোনো বস্তু থেকে চাই:
console.log(streetcar.title);
আমাদের কোড ফিরে আসে:একটি স্ট্রিটকার নামক ইচ্ছা।
কীভাবে একটি ক্লাস পদ্ধতি সংজ্ঞায়িত করবেন
প্রোটোটাইপগুলির উপর ক্লাস ব্যবহার করার সুবিধাগুলির মধ্যে একটি হল আপনি একটি ক্লাসের ভিতরে একটি পদ্ধতি ঘোষণা করতে পারেন। এর মানে হল যে আপনাকে prototype
ব্যবহার করতে হবে না একটি বিদ্যমান ফাংশনে একটি নতুন পদ্ধতি যোগ করার জন্য সিনট্যাক্স।
এই উদাহরণ বিবেচনা করুন:
class Book { constructor(title, author) { this.title = title; this.author = author; } getDetails() { console.log(`${this.title} is a book written by ${this.author}.`); } }
আমরা getDetails()
নামে একটি পদ্ধতি ঘোষণা করেছি যা আমাদের ক্লাসের ভিতরে বিদ্যমান। এটি চমৎকার কারণ এটি আমাদের সমস্ত কোড একসাথে গোষ্ঠীবদ্ধ রাখে। আমাদের getDetails()
-কে কল করা যাক ফাংশন:
var streetcar = new Book("A Streetcar Named Desire", "Tennessee Williams"); streetcar.getDetails();
আমাদের কোড ফিরে আসে:
A Streetcar Named Desire হল টেনেসি উইলিয়ামসের লেখা একটি বই।
উত্তরাধিকার শ্রেণী
যেকোন অবজেক্ট-ওরিয়েন্টেড স্ট্রাকচারের মতো, ক্লাসগুলি অন্যান্য ক্লাস থেকে সম্পত্তির উত্তরাধিকারী হতে পারে।
উত্তরাধিকার বলতে এমন একটি প্রক্রিয়াকে বোঝায় যেখানে একটি শিশু শ্রেণি একটি অভিভাবক শ্রেণি থেকে পদ্ধতি এবং ডেটা অ্যাক্সেস করতে পারে। একটি ক্লাসের উত্তরাধিকারী হতে, আপনি extends
ব্যবহার করতে পারেন কীওয়ার্ড একটি জাভাস্ক্রিপ্ট ফাইল তৈরি করুন বা আপনার জাভাস্ক্রিপ্ট কনসোল খুলুন এবং এই কোডটিতে পেস্ট করুন:
class Fiction extends Book { constructor(title, author, fiction) { super(title, author); this.fiction = true; } }
আমরা ফিকশন নামে একটি ক্লাস তৈরি করেছি যা আমরা আগে যে বইয়ের শ্রেণীটিকে একটি ব্লুপ্রিন্ট হিসাবে ঘোষণা করেছি তা ব্যবহার করে৷ আমাদের কোডে, আমরা super()
ব্যবহার করেছি মূল শ্রেণী থেকে মান শিরোনাম এবং লেখকের উত্তরাধিকারী করার জন্য কীওয়ার্ড, যা বই। তারপর, আমরা একটি নতুন বৈশিষ্ট্য সংজ্ঞায়িত করেছি, fiction
, যার মান ডিফল্টরূপে সত্য হিসাবে সেট করা হয়।
আসুন আমাদের নতুন ফিকশন ক্লাসের একটি অবজেক্ট তৈরি করি:
var gatsby = new Fiction("The Great Gatsby", "F. Scott Fitzgerald"); console.log(gatsby.fiction);
আমাদের কোড রিটার্ন:সত্য. ফিকশন ক্লাস fiction
নামে একটি আইটেম সঞ্চয় করে যা ডিফল্টরূপে সত্য। যদি আমরা বুক ক্লাসের একটি উদাহরণ থেকে এই মানটি অ্যাক্সেস করার চেষ্টা করি তবে কিছুই ফেরত দেওয়া হবে না। কারণ "কথাসাহিত্য" শুধুমাত্র আমাদের ফিকশন ক্লাসে অ্যাক্সেসযোগ্য৷
গেটার এবং সেটার্স
আপনি যখন ক্লাসের সাথে কাজ করছেন, তখন আপনার গেটার এবং সেটার ফাংশনগুলি ব্যবহার করা উচিত।
গেটার ফাংশন আপনাকে ক্লাস থেকে পদ্ধতি পুনরুদ্ধার করতে দেয়। সেটার ফাংশন আপনাকে একটি ক্লাসে একটি নির্দিষ্ট আইটেমের মান পরিবর্তন করতে দেয়। এই ফাংশনগুলিকে get
ব্যবহার করে চিহ্নিত করা হয় এবং set
কীওয়ার্ড, যথাক্রমে।
নিম্নলিখিত কোড বিবেচনা করুন:
class Book { constructor(title, author) { this.title = title; this.author = author; } get author() { return this.author; } set author(author) { this.author = author; } }
এই উদাহরণে, আমরা author
নামে দুটি পদ্ধতি ঘোষণা করেছি . এই পদ্ধতিগুলির মধ্যে একটি আমাদের author
এর মান পুনরুদ্ধার করতে দেয়; এটাই আমাদের get
পদ্ধতি অন্য পদ্ধতিটি আমাদের author
এর মান পরিবর্তন করতে দেয় .
আমরা নিম্নলিখিত কোড ব্যবহার করে এটি কর্মে দেখতে পারি:
var streetcar = new Book("A Streetcar Named Desire", ""); streetcar.author = "Tennessee Williams"; console.log(streetcar.author);
আমাদের কোড রিটার্ন:টেনেসি উইলিয়ামস।
আমরা streetcar
নামে একটি অবজেক্ট শুরু করেছি এবং এটিকে শিরোনাম দিয়েছেন A Streetcar Named Desire
. তারপর আমরা author
এর মান সেট করি Tennessee Williams
সেটার ব্যবহার করে যা আমরা আমাদের কোডে সংজ্ঞায়িত করেছি। অবশেষে, আমরা author
এর মান প্রিন্ট করেছি গেটার পদ্ধতি ব্যবহার করে কনসোলে।
উপসংহার
যদিও ক্লাসগুলি জাভাস্ক্রিপ্টে কোনও নতুন কার্যকারিতা যোগ করে না, তবে আপনি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ে অভ্যস্ত কিনা তা বোঝার জন্য তারা লেখার ফাংশনগুলিকে সহজ করে তোলে।
ক্লাসগুলি জাভাস্ক্রিপ্টের প্রোটোটাইপ-ভিত্তিক ডিজাইনকে বিমূর্ত করে এবং এটিকে আরও অবজেক্ট-ভিত্তিক বলে মনে করে। "প্রতীয়মান" শব্দটি অত্যন্ত গুরুত্বপূর্ণ কারণ, মনে রাখবেন, ক্লাসগুলি ফাংশন। ক্লাস সিনট্যাকটিক চিনি ছাড়া আর কিছুই নয়।
এখন আপনি জাভাস্ক্রিপ্ট বিশেষজ্ঞের মতো ক্লাস ব্যবহার শুরু করতে প্রস্তুত!