জেভাস্ক্রিপ্ট ক্লাস ইনহারিটেন্স
- পূর্ববর্তী পৃষ্ঠা JS শ্রেণী সম্পর্কে
- পরবর্তী পৃষ্ঠা JS স্ট্যাটিক
ক্লাস উত্তরসূরী
ক্লাস উত্তরসূরী তৈরির জন্য ব্যবহার করুন: extends
কীভাবে:
ক্লাস উত্তরসূরীতে তৈরি করা ক্লাসগুলি অন্য ক্লাসের সমস্ত পদ্ধতিকে উত্তরসূরী করে:
প্রতিমান
একটি "Model" নামের ক্লাস তৈরি করুন যা "Car" ক্লাসের পদ্ধতিকে উত্তরসূরী হবে:
class Car { constructor(brand) { this.carname = brand; } present() { return 'I have a ' + this.carname; } } class Model extends Car {}} constructor(brand, mod) { super(brand); this.model = mod; } show() { return this.present() + ', it is a ' + this.model; } } let myCar = new Model("Ford", "Mustang"); document.getElementById("demo").innerHTML = myCar.show();
super()
পদ্ধতি পিতৃকেন্দ্রিক ক্লাস:
constructor পদ্ধতিতে super()
পদ্ধতি, আমরা পিতৃকেন্দ্রিক constructor পদ্ধতি আহ্বান করি, পিতৃকেন্দ্রিক বৈশিষ্ট্য এবং পদ্ধতির প্রবেশ অধিকার পান:
উত্তরসূরীতা কোড পুনর্ব্যবহারকে অত্যন্ত সহায়ক করে: নতুন ক্লাস তৈরি করার সময় সম্পূর্ণ ক্লাসের বৈশিষ্ট্য এবং পদ্ধতি পুনর্ব্যবহার করা:
Getter এবং Setter
ক্লাসও getter এবং setter ব্যবহার করতে পারে:
আপনার বৈশিষ্ট্যের জন্য getter এবং setter ব্যবহার করা বুদ্ধিমান: বিশেষ করে, যদি আপনি তাদের মান পুনরায় ফিরিয়ে দিতে চান বা তাদের মান সেট করার আগে কোনও বিশেষ কাজ করতে চান:
যদি আপনি ক্লাসে getter এবং setter যোগ করতে চান, তবে get
এবং set
কীভাবে:
প্রতিমান
getter এবং setter তৈরি করে "carname" বৈশিষ্ট্য:
class Car { constructor(brand) { this.carname = brand; } get cnam() { return this.carname; } set cnam(x) { this.carname = x; } } let myCar = new Car("Ford"); document.getElementById("demo").innerHTML = myCar.cnam;
মন্তব্য:যদিও getter একটি পদ্ধতি, আপনি বৈশিষ্ট্য মান পাওয়ার জন্য ব্র্যাকেট ব্যবহার করবেন না:
getter/setter পদ্ধতির নাম বৈশিষ্ট্য নামের সঙ্গে একই না হতে পারে, এই উদাহরণে carname
。
অনেক প্রোগ্রামার বৈশিষ্ট্য নামের আগে হাইফেন চিহ্ন (_)-এর ব্যবহার করে getter/setter-কে প্রকৃত বৈশিষ্ট্য থেকে আলাদা করে:
প্রতিমান
আপনি হাইফেন চিহ্ন (_)-এর মাধ্যমে getter/setter-কে প্রকৃত বৈশিষ্ট্য থেকে আলাদা করতে পারেন:
class Car { constructor(brand) { this._carname = brand; } get carname() { return this._carname; } set carname(x) { this._carname = x; } } let myCar = new Car("Ford"); document.getElementById("demo").innerHTML = myCar.carname;
setter ব্যবহার করতে, সমান সংজ্ঞায়িত গঠনকে ব্যবহার করুন, ব্র্যাকেট ছাড়াই:
প্রতিমান
সেটার মাধ্যমে গাড়ির নাম "Volvo"-এ পরিবর্তন করুন:
class Car { constructor(brand) { this._carname = brand; } get carname() { return this._carname; } set carname(x) { this._carname = x; } } let myCar = new Car("Ford"); myCar.carname = "Volvo"; document.getElementById("demo").innerHTML = myCar.carname;
Hoisting
ফাংশন এবং অন্যান্য JavaScript ঘোষণার থেকে ভিন্ন, শ্রেণী ঘোষণা হোইস্টিং হয় না。
এর মানে আপনাকে শ্রেণীটি ঘোষণা করার পরেই ব্যবহার করতে হবে:
প্রতিমান
//আপনি এখনও এই শ্রেণীটি ব্যবহার করতে পারবেন না。 //myCar = new Car("Ford") //এটি একটি ত্রুটি উঠতে পারে。 class Car { constructor(brand) { this.carname = brand; } } //এখন আপনি এই শ্রেণীটি ব্যবহার করতে পারবেন: let myCar = new Car("Ford")
মন্তব্য:অন্যান্য ঘোষণা, যেমন ফাংশন, ঘোষণার আগে ব্যবহার করার সময় ত্রুটি হবে না, কারণ JavaScript-এর ঘোষণার ডিফল্ট হোইস্টিং (ঘোষণা শীর্ষে সরানো) হয়。
- পূর্ববর্তী পৃষ্ঠা JS শ্রেণী সম্পর্কে
- পরবর্তী পৃষ্ঠা JS স্ট্যাটিক