আপনি যদি সমস্ত ভেরিয়েবলগুলি "পাবলিক" না করেন, তা Function
না হলে সরাসরি বা prototype
সম্পত্তির মাধ্যমে এগুলিকে সদস্য করুন ।
var C = function( ) {
this.x = 10 , this.y = 20 ;
this.modify = function( ) {
this.x = 30 , this.y = 40 ;
console.log("(!) C >> " + (this.x + this.y) ) ;
} ;
} ;
var A = function( ) {
this.modify = function( ) {
this.x = 300 , this.y = 400 ;
console.log("(!) A >> " + (this.x + this.y) ) ;
} ;
} ;
A.prototype = new C ;
var B = function( ) {
this.modify = function( ) {
this.x = 3000 , this.y = 4000 ;
console.log("(!) B >> " + (this.x + this.y) ) ;
} ;
} ;
new C( ).modify( ) ;
new A( ).modify( ) ;
new B( ).modify( ) ;
আপনি কয়েকটি পরিবর্তন লক্ষ্য করবেন।
সর্বাধিক গুরুত্বপূর্ণভাবে অনুমিত "সুপার-ক্লাস" কনস্ট্রাক্টরের কলটি এখন এই লাইনের মধ্যে অন্তর্ভুক্ত:
<name>.prototype = new C ;
উভয়ই A
এবং B
এখন পৃথকভাবে সংশোধনযোগ্য সদস্য থাকবে x
এবং y
এটি ... = C
পরিবর্তে আমরা লিখতে চাইলে কেস হবে না ।
এর পরে, x
, y
এবং modify
সব "সর্বজনীন" সদস্যদের তাই একটি ভিন্ন বরাদ্দ করছেন যে Function
তাদের
<name>.prototype.modify = function( ) { }
আসলটি "ওভাররাইড" করবে Function
সেই নামটি ।
শেষ অবধি, ঘোষণাপত্রে কলটি করা modify
যাবে না Function
কারণ "সুপার-ক্লাস" এর অন্তর্নিহিত কলটি তখনই কার্যকর করা হবে যখন আমরা অনুমিত "সুপার-ক্লাস" সেট করিprototype
অনুমিত "উপ-শ্রেণীর" সম্পত্তিতে ।
তবে ভাল, আপনি জাভাস্ক্রিপ্টে এই জাতীয় জিনিসটি কীভাবে করবেন তা কমবেশি।
এইচটিএইচ,
এফকে
modify
কোনও পদ্ধতি নয় তবে একটি নেস্টেড ফাংশন - এই দুজনের মধ্যে একটি পার্থক্য রয়েছে ...