class AbstractClass {
constructor() {
}
set property(value) {
this.property_ = value;
}
get property() {
return this.property_;
}
}
class Subclass extends AbstractClass {
constructor() {
super();
}
set property(value) {
super.property = value;
if (!(this.property_ instanceof SubclassAssociatedClass)) throw new TypeError();
}
//get property() {
// return super.property;
//}
}
अधिरोहित किया जाना चाहिए
एक विशेषता के set
विधि ओवरराइड और ऐसा लगता है get
विधि भी अधिरोहित जा चाहिए, अन्यथा undefined
दिया जाता है (यानी, get
विधि विरासत में मिला नहीं है, टिप्पणी हटाएं subclass get property()
ऊपर विधि और सबकुछ ठीक काम करता है)।एक सेटर ओवरराइड, और गेटर भी
मुझे लगता है कि यह कल्पना का एक हिस्सा है। हालांकि यह संभवतः अगर व्यवहार क्रॉस संकलन का परिणाम था, तो यह पालन करेगा। बस यह सुनिश्चित करने के लिए, क्या यह ओवरराइड सेटर्स और गेटर्स को कोड करने का सही तरीका है (दोनों एक ही समय में या बिल्कुल नहीं)?
क्या आप अपना उदाहरण संपादित कर सकते हैं ताकि सेटर/गेटर बस सुपर कॉल नहीं कर रहा हो? – Bergi
यह सहायक हो सकता है: http://stackoverflow.com/questions/27400010/object-prototype-definegetter-and-definesetter-polyfill/27400162#27400162। यह '__defineGetter__' इत्यादि के मामले में समस्या पर चर्चा करता है, लेकिन सिद्धांत समान है: यदि आप पहले से ही गेटटर प्राप्त करने वाले प्रॉपर्टी पर सेटटर को परिभाषित/पुनः परिभाषित कर रहे हैं, तो आपको गेटर को पुनर्प्राप्त करने और सेटटर के साथ इसे रीसेट करने की आवश्यकता है । –