2016-10-06 18 views
8

का उपयोग करते समय मैंने विरासत विधियों को ओवरराइड कैसे किया है मैंने एक कक्षा बनाई है जो ऐरे को बढ़ाती है। मैं विरासत धक्का समारोह को कॉल करने से पहले मनमाने ढंग से कोड निष्पादित करना चाहता हूं।जावास्क्रिप्ट ES6/ES2015 उपclassing

class newArray extends Array{ 
 
     //execute any logic require before pushing value onto array 
 
     this.push(value)  
 
}

उत्तर

20

समाधान मैंने पाया उपवर्ग विरासत में मिला समारोह के रूप में एक ही नाम है कि में एक नया कार्य बनाने के लिए किया गया था। इस मामले में धक्का। फिर ओवरराइडिंग फ़ंक्शन के अंदर विरासत फ़ंक्शन को सुपर कीवर्ड के माध्यम से बुलाया जाता है।

class newArray extends Array{ 
 
    push(value) { 
 
     //execute any logic require before pushing value onto array 
 
     console.log(`pushed ${value} on to array`) 
 
     super.push(value)}  
 
} 
 

 
var array = new newArray 
 

 
array.push('new Value')

+0

हाँ, यह है कि संबंध में परंपरागत OOP भाषाओं की तरह बर्ताव – bora89

संबंधित मुद्दे