जब तक आप सभी चर "सार्वजनिक" नहीं बनाते हैं, यानी उन्हें 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
"उप-वर्ग" की संपत्ति को "सुपर-क्लास" माना जाएगा।
लेकिन ठीक है, यह कम या ज्यादा है कि आप जावास्क्रिप्ट में इस तरह का काम कैसे करेंगे।
HTH,
FK
modify
एक विधि नहीं है, लेकिन एक नेस्टेड फ़ंक्शन है - उन दोनों के बीच अंतर है ...