javascript - subclass.prototype = new superclass() vs. subclass = new superclass() -
मैं जावास्क्रिप्ट में
object = new class () का उपयोग कर subclasses instantiating गया है < / Code>
लेकिन मुझे लगता है कि कुछ लोगों का प्रयोग करने का इन्स्तांत है
object.prototype = new class ()
प्रश्न: क्या है अंतर? मुझे ऐसा लगता है कि उत्तरार्द्ध विरासत श्रृंखला का सम्मान कर रहा है क्योंकि अगर वर्ग ()
में " this.variable = x
" विवरण का एक गुच्छा है, और ऑब्जेक्ट कुछ है वर्ग की एक आवृत्ति के बजाय इसे से वारिस करना चाहते हैं, तो आप सटीक रूप से ऑब्जेक्ट के प्रोटोटाइप को ऑब्जेक्ट के मुकाबले पूर्व संस्करण के रूप में निर्दिष्ट कर रहे हैं। तो क्या यह वास्तव में ऐसा है?
वस्तु = नया वर्ग () | बनाम | | हालांकि, कार्यात्मक रूप से कार्यक्रम में दोनों समान हैं? साइड प्रश्न: इसके अलावा मैं ' जैसा कि नया
ऑपरेटर वास्तव में करता है, उस रूप में थोड़ा अस्पष्ट नहीं है I ऐसा लगता है कि मुझे कुछ करने के लिए बस एक खाली वस्तु बनाने और इसे proto संपत्ति असाइन करना है?
अंतर यह है कि जब आप करते हैं:
var subclass = नया सुपरक्लस ();
आप superclass
का एक उदाहरण बना रहे हैं उपवर्ग
केवल चर है आप एक उप-वर्ग नहीं बना रहे हैं (यानी। उपवर्ग
बीयर सुपर क्लास
बना रहा है) उत्तरार्द्ध के उदाहरण में, उप-वर्ग मानते हुए एक फ़ंक्शन है, आप कह रहे हैं कि उप-क्लास के सभी नए उदाहरणों में (अर्थात उप-वर्ग) superclass
चाहिए।
ऐसा:
फ़ंक्शन सुपरक्लास () {this.stuff = "stuff";} फ़ंक्शन () उपवर्ग () {} subclass.prototype = new superclass (); चेतावनी (नया उपवर्ग ()। यह); // "सामान" को पॉप अप करता है
प्रोटोटाइपिकल विरासत है।
नया
ऑपरेटर के लिए, इसका एक उदाहरण बनाने के लिए उपयोग किया जाता है अंतर्निहित वस्तुओं और उपयोगकर्ता परिभाषित प्रकार एक उपयोगकर्ता परिभाषित प्रकार केवल एक फ़ंक्शन है जब मैं ऊपर लिखा था कि उपवर्ग को प्रोटोटाइपिकल विरासत का उपयोग करते हुए सुपरटाइप प्राप्त होता है, मेरा मतलब है कि उपवर्ग के सभी नए उदाहरण एक विशेष से प्राप्त होते हैं। उदाहरण के सुपरक्लस से, सुपरक्लस
प्रकार / फ़ंक्शन से नहीं।
Comments
Post a Comment