জাভাস্ক্রিপ্টে আপনার ক্লাস নেই তবে আপনি উত্তরাধিকার এবং আচরণের পুনরায় ব্যবহার বিভিন্ন উপায়ে পেতে পারেন:
সিউডো-শাস্ত্রীয় উত্তরাধিকার (প্রোটোটাইপিংয়ের মাধ্যমে):
function Super () {
this.member1 = 'superMember1';
}
Super.prototype.member2 = 'superMember2';
function Sub() {
this.member3 = 'subMember3';
}
Sub.prototype = new Super();
new
অপারেটরের সাথে ব্যবহার করা উচিত :
var subInstance = new Sub();
ফাংশন অ্যাপ্লিকেশন বা "কনস্ট্রাক্টর চেইনিং":
function Super () {
this.member1 = 'superMember1';
this.member2 = 'superMember2';
}
function Sub() {
Super.apply(this, arguments);
this.member3 = 'subMember3';
}
এই পদ্ধতির new
অপারেটরের সাথেও ব্যবহার করা উচিত :
var subInstance = new Sub();
প্রথম উদাহরণ সঙ্গে পার্থক্য যে, যখন আমরা হয় করতে কন্সট্রাকটর অবজেক্টের অভ্যন্তরে , এটা নির্ধারিত বৈশিষ্ট্য যোগ করা উপর সরাসরি নতুন দৃষ্টান্ত উপর, যেমন বৈশিষ্ট্য উপস্থিত রয়েছে এবং সরাসরি ( )।apply
Super
this
Sub
this
Super
subInstance
member1
member2
subInstance.hasOwnProperty('member1') == true;
প্রথম উদাহরণে, সেই বৈশিষ্ট্যগুলি প্রোটোটাইপ চেইনের মাধ্যমে পৌঁছানো হয় , সেগুলি কোনও অভ্যন্তরীণ [[Prototype]]
বস্তুতে বিদ্যমান ।
পরজীবী উত্তরাধিকার বা শক্তি নির্মাতারা:
function createSuper() {
var obj = {
member1: 'superMember1',
member2: 'superMember2'
};
return obj;
}
function createSub() {
var obj = createSuper();
obj.member3 = 'subMember3';
return obj;
}
এই পদ্ধতির মূলত "অবজেক্ট অগমেন্টিং" এর উপর ভিত্তি করে, আপনাকে new
অপারেটরটি ব্যবহার করার দরকার নেই এবং আপনি দেখতে পাচ্ছেন, this
কীওয়ার্ড জড়িত নয়।
var subInstance = createSub();
ECMAScript 5 তম এড। Object.create
পদ্ধতি:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
var superInstance = {
member1: 'superMember1',
member2: 'superMember2'
};
var subInstance = Object.create(superInstance);
subInstance.member3 = 'subMember3';
উপরের পদ্ধতিটি ক্রকফোর্ড দ্বারা প্রস্তাবিত একটি নমুনা উত্তরাধিকার কৌশল ।
বস্তুর দৃষ্টান্তগুলি অন্য অবজেক্টের উদাহরণ থেকে উত্তরাধিকারী হয়, এটি that's
এই কৌশলটি সহজ "বস্তু বৃদ্ধি" চেয়ে ভাল হতে পারে না, কারণ উত্তরাধিকারসূত্রে বৈশিষ্ট্য সর্বাঙ্গে নতুন অবজেক্ট দৃষ্টান্ত, যেহেতু অনুলিপি করা হয়নি বেস অবজেক্ট হিসেবে সেট করা হয় [[Prototype]]
এর বর্ধিত বস্তু, মধ্যে উপরের উদাহরণে subInstance
শারীরিকভাবে শুধুমাত্র রয়েছে member3
সম্পত্তি।