আমি ভয় করি যে আপনার উদাহরণটি আপনার ধারণা মতো কাজ করে না। এই অংশ:
this.do = function(){ /*do something*/ };
সংজ্ঞাটি ওভাররাইট করে
MyClass.prototype.do = function(){ /*do something else*/ };
যেহেতু সদ্য নির্মিত বস্তুর ইতিমধ্যে একটি "কর" সম্পত্তি রয়েছে তাই এটি প্রোটোটাইপাল চেইনটি সন্ধান করে না।
জাভাস্ক্রিপ্টে উত্তরাধিকারের ধ্রুপদী ফর্মটি অবাস্তব এবং উপলব্ধি করা শক্ত। আমি এর পরিবর্তে ডগলাস ক্রকফোর্ডগুলি সহজ উত্তরাধিকারের ধরণটি ব্যবহার করার পরামর্শ দেব। এটার মত:
function my_class(name) {
return {
name: name,
do: function () { /* do something */ }
};
}
function my_child(name) {
var me = my_class(name);
var base_do = me.do;
me.do = function () {
if (this.name === 'something'){
//do something new
} else {
base_do.call(me);
}
}
return me;
}
var o = my_child("something");
o.do(); // does something new
var u = my_child("something else");
u.do(); // uses base function
আমার মতে জাভাস্ক্রিপ্টে অবজেক্টস, কনস্ট্রাক্টর এবং উত্তরাধিকার পরিচালনা করার একটি আরও পরিষ্কার উপায়। আপনি ক্রকফোর্ড জাভাস্ক্রিপ্টে আরও পড়তে পারেন : ভাল অংশগুলি ।