আমি জানি যে এই উত্তরটি 3 বছর দেরীতে হয়েছে তবে আমি সত্যই মনে করি বর্তমান উত্তরগুলি ধ্রুপদী উত্তরাধিকারের চেয়ে প্রোটোটাইপাল উত্তরাধিকার কীভাবে ভাল সে সম্পর্কে পর্যাপ্ত তথ্য সরবরাহ করে না ।
প্রথমে জাভাস্ক্রিপ্ট প্রোগ্রামাররা প্রোটোটাইপাল উত্তরাধিকারের প্রতিরক্ষার জন্য সর্বাধিক প্রচলিত যুক্তি দেখি (আমি উত্তরগুলির বর্তমান পুল থেকে এই যুক্তিগুলি নিচ্ছি):
- ইহা সহজ.
- এটা শক্তিশালী।
- এটি ছোট, কম রিডানড্যান্ট কোডের দিকে নিয়ে যায়।
- এটি গতিশীল এবং তাই গতিশীল ভাষার পক্ষে এটি আরও ভাল।
এখন এই যুক্তিগুলি সমস্ত বৈধ, তবে কেন এটি ব্যাখ্যা করার ক্ষেত্রে কেউ মাথা ঘামায় না। এটি একটি শিশুকে বলার মতো যে গণিত অধ্যয়ন গুরুত্বপূর্ণ। অবশ্যই এটি অবশ্যই, তবে সন্তানের অবশ্যই যত্ন নেই; এবং আপনি ম্যাথসের মতো কোনও শিশুকে এটি গুরুত্বপূর্ণ বলে বলে তৈরি করতে পারবেন না।
আমি মনে করি প্রোটোটাইপাল উত্তরাধিকারের সমস্যাটি এটি জাভাস্ক্রিপ্টের দৃষ্টিকোণ থেকে ব্যাখ্যা করা হয়েছে। আমি জাভাস্ক্রিপ্ট পছন্দ করি, তবে জাভাস্ক্রিপ্টে প্রোটোটাইপাল উত্তরাধিকার ভুল। শাস্ত্রীয় উত্তরাধিকারের বিপরীতে প্রোটোটাইপাল উত্তরাধিকারের দুটি নিদর্শন রয়েছে:
- প্রোটোটাইপাল উত্তরাধিকারের প্রোটোটাইপাল প্যাটার্ন।
- প্রোটোটাইপাল উত্তরাধিকারের কনস্ট্রাক্টর প্যাটার্ন।
দুর্ভাগ্যক্রমে জাভাস্ক্রিপ্ট প্রোটোটাইপাল উত্তরাধিকারের কনস্ট্রাক্টর প্যাটার্নটি ব্যবহার করে। এর কারণ এটি যখন জাভাস্ক্রিপ্টটি তৈরি করা হয়েছিল, তখন ব্রেন্ডন আইচ (জেএস এর স্রষ্টা) এটি জাভা (যা শাস্ত্রীয় উত্তরাধিকারী) এর মতো দেখতে চেয়েছিল:
এবং আমরা এটিকে জাভাতে ছোট ভাই হিসাবে চাপছিলাম, যেমন ভিজুয়াল বেসিকের পরিপূরক ভাষাটি তখন মাইক্রোসফ্টের ভাষা পরিবারগুলিতে সি ++ ছিল।
এটি খারাপ কারণ লোকেরা যখন জাভাস্ক্রিপ্টে কনস্ট্রাক্টর ব্যবহার করে তখন তারা অন্য কনস্ট্রাক্টরের কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত কনস্ট্রাক্টরদের কথা ভাবেন। এটা ভুল. প্রোটোটাইপাল উত্তরাধিকারের বস্তুগুলিতে অন্য বস্তুগুলির উত্তরাধিকার সূত্রে প্রাপ্ত। নির্মাতারা কখনই ছবিতে আসে না। এটিই বেশিরভাগ মানুষকে বিভ্রান্ত করে।
শাস্ত্রীয় উত্তরাধিকারী জাভা জাতীয় ভাষার লোকেরা আরও বিভ্রান্ত হয়ে পড়ে কারণ নির্মাতারা ক্লাসগুলির মতো দেখতে তারা শ্রেণীর মতো আচরণ করে না। যেমন ডগলাস ক্রকফোর্ড বলেছেন:
এই দিকনির্দেশটি ভাষাটি ক্লাসিকাল প্রশিক্ষিত প্রোগ্রামারদের কাছে আরও বেশি পরিচিত মনে করার উদ্দেশ্যে করা হয়েছিল, তবে জাভা স্ক্রিপ্টের জাভা প্রোগ্রামারদের খুব কম মতামত থেকে আমরা দেখতে পাচ্ছি, এটি করতে ব্যর্থ হয়েছিল। জাভাস্ক্রিপ্টের কনস্ট্রাক্টর প্যাটার্নটি শাস্ত্রীয় জনতার কাছে আবেদন করে নি। এটি জাভাস্ক্রিপ্টের প্রকৃত প্রোটোটাইপাল প্রকৃতিটিকেও অস্পষ্ট করেছিল। ফলস্বরূপ, খুব কম প্রোগ্রামার আছেন যারা ভাষা কীভাবে কার্যকরভাবে ব্যবহার করতে জানেন।
ওখানে তোমার আছে। সোজা ঘোড়া মুখ থেকে.
সত্যিকারের প্রোটোটাইপাল উত্তরাধিকার
প্রোটোটাইপাল উত্তরাধিকার সমস্ত বিষয় সম্পর্কে। অবজেক্টগুলি অন্য বস্তুর সম্পত্তি থেকে উত্তরাধিকারী হয়। এখানেই শেষ এটা পেতে ওখানে যাও. প্রোটোটাইপাল উত্তরাধিকার ব্যবহার করে বস্তু তৈরির দুটি উপায় রয়েছে:
- একেবারে নতুন অবজেক্ট তৈরি করুন।
- একটি বিদ্যমান বস্তুর ক্লোন করুন এবং এটি প্রসারিত করুন।
দ্রষ্টব্য: জাভাস্ক্রিপ্ট কোনও বস্তুর ক্লোন করার জন্য দুটি উপায় সরবরাহ করে - প্রতিনিধি দল এবং উপসংহার । এখন থেকে আমি "ক্লোন" শব্দটি ব্যবহার করব প্রতিনিধিদলের মাধ্যমে একচেটিয়াভাবে উত্তরাধিকারের জন্য এবং "অনুলিপি" শব্দটি একচেটিয়াভাবে উত্তরাধিকারের জন্য উল্লেখ করুন।
যথেষ্ট আলাপ। আসুন কিছু উদাহরণ দেখুন। বলুন আমার কাছে ব্যাসার্ধের বৃত্ত রয়েছে 5
:
var circle = {
radius: 5
};
আমরা এর ব্যাসার্ধ থেকে বৃত্তের ক্ষেত্রফল এবং পরিধিটি গণনা করতে পারি:
circle.area = function () {
var radius = this.radius;
return Math.PI * radius * radius;
};
circle.circumference = function () {
return 2 * Math.PI * this.radius;
};
এখন আমি ব্যাসার্ধের অন্য একটি বৃত্ত তৈরি করতে চাই 10
। এটি করার একটি উপায় হ'ল:
var circle2 = {
radius: 10,
area: circle.area,
circumference: circle.circumference
};
তবে জাভাস্ক্রিপ্ট একটি আরও ভাল উপায় - প্রতিনিধি দল সরবরাহ করে । Object.create
ফাংশন এই কাজ করতে ব্যবহার করা হয়:
var circle2 = Object.create(circle);
circle2.radius = 10;
এখানেই শেষ. আপনি সবেমাত্র জাভাস্ক্রিপ্টে প্রোটোটাইপাল উত্তরাধিকার করেছেন। এত সহজ ছিল না? আপনি কোনও বস্তু নিয়ে যান, এটি ক্লোন করুন, আপনার যা যা প্রয়োজন তা পরিবর্তন করুন এবং আরে প্রেস্টো - আপনি নিজেকে একটি একেবারে নতুন অবজেক্ট পেয়েছেন।
এখন আপনি জিজ্ঞাসা করতে পারেন, "এটি কীভাবে সহজ? আমি যখনই একটি নতুন চেনাশোনা তৈরি করতে চাই তখন আমার circle
এটি ক্লোন করে ম্যানুয়ালি এটিকে একটি ব্যাসার্ধ নির্ধারণ করা উচিত"। সমাধানটি হ'ল আপনার জন্য ভারী উত্তোলন করতে কোনও ফাংশন ব্যবহার করা:
function createCircle(radius) {
var newCircle = Object.create(circle);
newCircle.radius = radius;
return newCircle;
}
var circle2 = createCircle(10);
প্রকৃতপক্ষে আপনি এই সমস্তগুলিকে একক বস্তুর আক্ষরিক সাথে নীচে একত্রিত করতে পারেন:
var circle = {
radius: 5,
create: function (radius) {
var circle = Object.create(this);
circle.radius = radius;
return circle;
},
area: function () {
var radius = this.radius;
return Math.PI * radius * radius;
},
circumference: function () {
return 2 * Math.PI * this.radius;
}
};
var circle2 = circle.create(10);
জাভাস্ক্রিপ্টে প্রোটোটাইপাল উত্তরাধিকার
আপনি যদি উপরের প্রোগ্রামটিতে লক্ষ্য করেন তবে create
ফাংশনটি একটি ক্লোন তৈরি করে circle
, radius
এটিতে একটি নতুন নিয়োগ করে এবং তারপরে এটি প্রদান করে। এটি একটি নির্মাণকারীর জাভাস্ক্রিপ্টে ঠিক কী করে:
function Circle(radius) {
this.radius = radius;
}
Circle.prototype.area = function () {
var radius = this.radius;
return Math.PI * radius * radius;
};
Circle.prototype.circumference = function () {
return 2 * Math.PI * this.radius;
};
var circle = new Circle(5);
var circle2 = new Circle(10);
জাভাস্ক্রিপ্টে কনস্ট্রাক্টর প্যাটার্ন হ'ল প্রোটোটাইপাল প্যাটার্নটি উল্টানো। বস্তু তৈরির পরিবর্তে আপনি একটি নির্মাণকারী তৈরি করুন। new
শব্দ binds this
এর ক্লোন করার কন্সট্রাকটর ভিতরে পয়েন্টার prototype
কন্সট্রাকটর করুন।
বিভ্রান্ত লাগছে? এটি কারণ জাভাস্ক্রিপ্টে কনস্ট্রাক্টর প্যাটার্নটি অযৌক্তিকভাবে জিনিসগুলিকে জটিল করে তোলে। বেশিরভাগ প্রোগ্রামার এটি বুঝতে অসুবিধা বোধ করেন।
অন্যান্য বস্তু থেকে উত্তরাধিকার সূত্রে প্রাপ্ত বস্তুর কথা চিন্তা না করে তারা অন্য নির্মাণকারীদের কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত কনস্ট্রাক্টরদের কথা ভাবেন এবং তারপরে একেবারে বিভ্রান্ত হন।
জাভাস্ক্রিপ্টে কনস্ট্রাক্টর প্যাটার্নটি এড়ানো উচিত কেন এমন আরও কয়েকটি কারণ রয়েছে। আপনি তাদের সম্পর্কে আমার ব্লগ পোস্টে এখানে পড়তে পারেন: নির্মাণকারী বনাম প্রোটোটাইপস
তাহলে শাস্ত্রীয় উত্তরাধিকারের তুলনায় প্রোটোটাইপাল উত্তরাধিকারের সুবিধাগুলি কী কী? আসুন আবার সর্বাধিক প্রচলিত যুক্তিগুলির মধ্য দিয়ে যান এবং কেন তা ব্যাখ্যা করুন ।
প্রোটোটাইপাল উত্তরাধিকার সহজ is
সিএমএস তার উত্তরে বলেছে:
আমার মতে প্রোটোটাইপাল উত্তরাধিকারের সবচেয়ে বড় সুবিধা হ'ল এর সরলতা।
আসুন আমরা কী করেছি তা বিবেচনা করা যাক। আমরা এমন একটি বস্তু তৈরি করেছি circle
যার ব্যাসার্ধ ছিল 5
। তারপরে আমরা এটি ক্লোন করে দিয়ে ক্লোনটিকে একটি ব্যাসার্ধ দিয়েছি 10
।
প্রোটোটাইপাল উত্তরাধিকার কাজ করতে আমাদের কেবল দুটি জিনিস প্রয়োজন:
- একটি নতুন অবজেক্ট তৈরি করার একটি উপায় (যেমন বস্তুর আক্ষরিক)।
- বিদ্যমান অবজেক্টকে বাড়ানোর একটি উপায় (যেমন
Object.create
)।
বিপরীতে শাস্ত্রীয় উত্তরাধিকার অনেক জটিল is শাস্ত্রীয় উত্তরাধিকারে আপনার রয়েছে:
- ক্লাস।
- অবজেক্ট।
- ইন্টারফেস।
- বিমূর্ত ক্লাস।
- ফাইনাল ক্লাস
- ভার্চুয়াল বেস ক্লাস।
- কন্সট্রাকটর।
- Destructors।
আপনি ধারণা পেতে। মুল বক্তব্যটি হ'ল প্রোটোটাইপাল উত্তরাধিকারগুলি বোঝা সহজ, বাস্তবায়ন করা সহজ এবং তর্ক করার পক্ষে সহজ।
স্টিভ ইয়েজ যেমনটি তাঁর ধ্রুপদী ব্লগ পোস্ট " একটি N00b এর প্রতিকৃতি " পোস্ট করেছেন :
মেটাডেটা হ'ল যেকোন ধরণের বর্ণনা বা মডেল something আপনার কোডের মন্তব্যগুলি কেবল গণনার প্রাকৃতিক ভাষার বর্ণনা are মেটাটাটা মেটা-ডেটা কী করে তা হ'ল এটি কঠোরভাবে প্রয়োজনীয় নয়। আমার যদি কিছু বংশধর কাগজপত্রের সাথে একটি কুকুর থাকে এবং আমি কাগজপত্রটি হারাতে পারি তবে আমার কাছে এখনও পুরোপুরি বৈধ কুকুর রয়েছে।
একই অর্থে ক্লাসগুলি কেবল মেটা-ডেটা। উত্তরাধিকারের জন্য ক্লাসগুলি কঠোরভাবে প্রয়োজন হয় না। তবে কিছু লোক (সাধারণত n00bs) ক্লাসে কাজ করতে আরও স্বাচ্ছন্দ্য বোধ করে। এটি তাদের নিরাপত্তার একটি মিথ্যা ধারণা দেয়।
ঠিক আছে, আমরা এও জানি যে স্থির প্রকারগুলি কেবলমাত্র মেটাডেটা। তারা দুই ধরণের পাঠককে লক্ষ্যযুক্ত একটি বিশেষ ধরণের মন্তব্য: প্রোগ্রামার এবং সংকলক। স্ট্যাটিক প্রকারগুলি গণনা সম্পর্কে একটি গল্প বলে, সম্ভবত উভয় পাঠক গোষ্ঠীই প্রোগ্রামটির উদ্দেশ্য বুঝতে সহায়তা করে। তবে রানটাইমের সময় স্থিতিশীল প্রকারগুলি ফেলে দেওয়া যেতে পারে, কারণ শেষ পর্যন্ত তারা কেবল স্টাইলাইজড মন্তব্য করে। তারা পেডিগ্রি পেপার ওয়ার্কের মতো: এটি তাদের কুকুর সম্পর্কে একটি নির্দিষ্ট সুরক্ষিত ব্যক্তিত্বের ধরণের সুখী করে তুলতে পারে, তবে কুকুর অবশ্যই যত্ন করে না।
যেমনটি আমি আগেই বলেছি, শ্রেণিগুলি মানুষকে সুরক্ষার একটি মিথ্যা ধারণা দেয়। উদাহরণস্বরূপ আপনি NullPointerException
জাভাতে প্রচুর পরিমাণে পান এমনকি আপনার কোডটি পুরোপুরি সুস্পষ্ট। আমি দেখতে পাই যে শাস্ত্রীয় উত্তরাধিকার সাধারণত প্রোগ্রামিংয়ের পথে আসে তবে সম্ভবত এটি কেবল জাভা। পাইথনের একটি আশ্চর্যজনক শাস্ত্রীয় উত্তরাধিকার ব্যবস্থা রয়েছে।
2. প্রোটোটাইপাল উত্তরাধিকার শক্তিশালী
শাস্ত্রীয় পটভূমি থেকে আসা বেশিরভাগ প্রোগ্রামাররা যুক্তিযুক্ত যে উত্তরাধিকার সূত্রে প্রোটোটাইপাল উত্তরাধিকারের চেয়ে আরও শক্তিশালী কারণ এটিতে রয়েছে:
- ব্যক্তিগত ভেরিয়েবল।
- একাধিক উত্তরাধিকার।
এই দাবিটি মিথ্যা। আমরা ইতিমধ্যে জানি যে জাভাস্ক্রিপ্ট ক্লোজারগুলির মাধ্যমে ব্যক্তিগত ভেরিয়েবলগুলিকে সমর্থন করে তবে একাধিক উত্তরাধিকার সম্পর্কে কী বলা যায়? জাভাস্ক্রিপ্টে অবজেক্টগুলির কেবল একটি প্রোটোটাইপ রয়েছে।
সত্যটি হ'ল প্রোটোটাইপাল উত্তরাধিকার একাধিক প্রোটোটাইপ থেকে উত্তরাধিকার সূত্রে সমর্থন করে। প্রোটোটাইপাল উত্তরাধিকারের অর্থ কেবল একটি বস্তু অন্য বস্তুর উত্তরাধিকার সূত্রে প্রাপ্ত হয়। আসলে আছে প্রটোটাইপ ইনহেরিটেন্স বাস্তবায়ন করার দুটি উপায় :
- ডেলিগেশন বা ডিফারেনশিয়াল উত্তরাধিকার
- ক্লোনিং বা কনট্যাটেনটিভ উত্তরাধিকার
হ্যাঁ জাভাস্ক্রিপ্ট কেবলমাত্র বস্তুগুলিকে অন্য একটি অবজেক্টের প্রতিনিধিত্ব করতে দেয়। তবে এটি আপনাকে একটি স্বেচ্ছাসেবী সংখ্যক সামগ্রীর বৈশিষ্ট্য অনুলিপি করতে দেয়। উদাহরণস্বরূপ _.extend
কেবল এটি করে।
অবশ্যই অনেক প্রোগ্রামার এটিকে সত্য উত্তরাধিকার হিসাবে বিবেচনা করে না instanceof
এবং isPrototypeOf
অন্যথায় বলে। তবে সহজেই প্রতিটি বস্তুতে প্রোটোটাইপগুলির একটি অ্যারে সংরক্ষণ করে সহজেই প্রতিকার করা যেতে পারে যা প্রোটোটাইপ থেকে উত্তোলনের মাধ্যমে উত্তরাধিকার সূত্রে প্রাপ্ত হয়:
function copyOf(object, prototype) {
var prototypes = object.prototypes;
var prototypeOf = Object.isPrototypeOf;
return prototypes.indexOf(prototype) >= 0 ||
prototypes.some(prototypeOf, prototype);
}
তাই প্রোটোটাইপাল উত্তরাধিকার ধ্রুপদী উত্তরাধিকারের মতোই শক্তিশালী। প্রকৃতপক্ষে এটি শাস্ত্রীয় উত্তরাধিকারের চেয়ে অনেক বেশি শক্তিশালী কারণ প্রোটোটাইপাল উত্তরাধিকার সূত্রে আপনি কোনও বৈশিষ্ট্য অনুলিপি করতে পারেন এবং কোন বৈশিষ্ট্যগুলি বিভিন্ন প্রোটোটাইপ থেকে বাদ দিতে পারবেন hand
ধ্রুপদী উত্তরাধিকারে আপনি কোন বৈশিষ্ট্য উত্তরাধিকারী হতে চান তা চয়ন করা অসম্ভব (বা কমপক্ষে খুব কঠিন)। তারা হীরা সমস্যা সমাধানের জন্য ভার্চুয়াল বেস ক্লাস এবং ইন্টারফেস ব্যবহার করে ।
জাভাস্ক্রিপ্টে তবে আপনি সম্ভবত হীরা সমস্যাটি কখনই শুনতে পাবেন না কারণ আপনি কোন সম্পত্তিটি উত্তরাধিকারী করতে চান এবং কোন প্রোটোটাইপগুলি থেকে সঠিকভাবে নিয়ন্ত্রণ করতে পারেন।
৩. প্রোটোটাইপাল উত্তরাধিকার কম অপ্রয়োজনীয়
এই বিষয়টি ব্যাখ্যা করা একটু বেশিই কঠিন কারণ শাস্ত্রীয় উত্তরাধিকার অগত্যা আরও বেশি রিলান্ড্যান্ট কোডের দিকে পরিচালিত করে না। প্রকৃতপক্ষে উত্তরাধিকার, ধ্রুপদী বা প্রোটোটাইপাল, কোডের অনর্থকতা হ্রাস করতে ব্যবহৃত হয়।
একটি যুক্তি হতে পারে যে শাস্ত্রীয় উত্তরাধিকার সহ বেশিরভাগ প্রোগ্রামিং ভাষা স্ট্যাটিকালি টাইপ করা হয় এবং ব্যবহারকারীকে স্পষ্টভাবে প্রকারগুলি ঘোষণা করতে হয় (হাস্কেলের বিপরীতে যার মধ্যে রয়েছে স্থির স্ট্যাটিক টাইপিং)। সুতরাং এটি আরও ভার্বোস কোড বাড়ে।
জাভা এই আচরণের জন্য কুখ্যাত। আমি স্পষ্টভাবে স্মরণ করি বব নাইস্ট্রোম প্র্যাট পার্সার্স সম্পর্কে তাঁর ব্লগ পোস্টে নিম্নলিখিত উপাখ্যানটির উল্লেখ করেছেন :
আপনি এখানে আমলাতন্ত্রের স্তরের জাভা "" দয়া করে এটি চতুর্ভুজে সাইন ইন করুন love
আবার, আমি মনে করি এটি কেবল কারণ জাভা এত চুষছে।
একটি বৈধ যুক্তি হ'ল শাস্ত্রীয় উত্তরাধিকারযুক্ত সমস্ত ভাষা একাধিক উত্তরাধিকারকে সমর্থন করে না। আবার জাভা মাথায় আসে। হ্যাঁ জাভার ইন্টারফেস রয়েছে, তবে এটি পর্যাপ্ত নয়। কখনও কখনও আপনার একাধিক উত্তরাধিকার প্রয়োজন।
যেহেতু প্রোটোটাইপাল উত্তরাধিকার একাধিক উত্তরাধিকারের জন্য মঞ্জুরি দেয় তাই একাধিক উত্তরাধিকারের জন্য কোডটি কম রিন্ডন্ড্যান্ট যা প্রোটোটাইপাল উত্তরাধিকার ব্যবহার করে এমন ভাষায় লেখা হয় যা শাস্ত্রীয় উত্তরাধিকার রয়েছে তবে একাধিক উত্তরাধিকার নেই।
৪. প্রোটোটাইপাল উত্তরাধিকার গতিশীল
প্রোটোটাইপাল উত্তরাধিকারের সবচেয়ে গুরুত্বপূর্ণ সুবিধা হ'ল প্রোটোটাইপগুলি তৈরি হওয়ার পরে আপনি নতুন বৈশিষ্ট্য যুক্ত করতে পারেন। এটি আপনাকে একটি প্রোটোটাইপে নতুন পদ্ধতি যুক্ত করতে দেয় যা সেই প্রোটোটাইপে প্রতিনিধিত্বকারী সমস্ত বস্তুর জন্য স্বয়ংক্রিয়ভাবে উপলব্ধ হয়ে যাবে।
শাস্ত্রীয় উত্তরাধিকারে এটি সম্ভব নয় কারণ একবার ক্লাস তৈরি হয়ে গেলে আপনি রানটাইমে এটিকে সংশোধন করতে পারবেন না। এটি সম্ভবত শাস্ত্রীয় উত্তরাধিকারের চেয়ে প্রোটোটাইপাল উত্তরাধিকারের একক বৃহত্তম সুবিধা এবং এটি শীর্ষে থাকা উচিত ছিল। তবে আমি শেষের জন্য সেরা সঞ্চয় পছন্দ করি।
উপসংহার
প্রোটোটাইপাল উত্তরাধিকার সংক্রান্ত বিষয়। প্রোটোটাইপাল উত্তরাধিকারের প্রোটোটাইপাল প্যাটার্নের পক্ষে প্রোটোটাইপাল উত্তরাধিকারের কনস্ট্রাক্টর প্যাটার্নটি কেন ত্যাগ করবেন সে সম্পর্কে জাভাস্ক্রিপ্ট প্রোগ্রামারদের শিক্ষিত করা গুরুত্বপূর্ণ।
আমাদের জাভাস্ক্রিপ্টটি সঠিকভাবে পড়াতে হবে এবং এর অর্থ নতুন প্রোগ্রামারগুলি দেখানো হচ্ছে কীভাবে কনস্ট্রাক্টরের প্যাটার্নের পরিবর্তে প্রোটোটাইপাল প্যাটার্নটি ব্যবহার করে কোড লিখবেন।
প্রোটোটাইপাল প্যাটার্ন ব্যবহার করে কেবল প্রোটোটাইপাল উত্তরাধিকার ব্যাখ্যা করা সহজ হবে না, তবে এটি আরও ভাল প্রোগ্রামার তৈরি করবে।
যদি আপনি এই উত্তরটি পছন্দ করেন তবে আপনার "ব্লগ প্রোটোটাইপাল হেরিটাইজেন্স বিষয়গুলি কেন " এ আমার ব্লগ পোস্টটি পড়া উচিত । বিশ্বাস করুন, আপনি হতাশ হবেন না।