oop - Can someone explain to me why this inheiritance in javascript doesnt work? -


  & lt; html & gt; & Lt; शीर्ष & gt; & LT; स्क्रिप्ट & gt; फ़ंक्शन सुपर क्लास () {var self = this; Self.someVariable = सच; } फ़ंक्शन उप-वर्ग () {var आत्म = यह; Self.name = "sub"; } उप-कक्षा.प्रोटीटिप = सुपर क्लास; Var उप = नया उप-वर्ग (); चेतावनी ("यह नाम उप-नाम के साथ एक उप वर्ग है" + उप.नाम + "और चर" + सब-सोइवेरिएबल); & Lt; / स्क्रिप्ट & gt; & Lt; / head & gt; & LT; बॉडी & gt; & Lt; / body & gt; & Lt; / html & gt;  

आउटपुट:

  यह नाम उप और चर के साथ एक उप वर्ग है अनिर्धारित  

तो कैसे उप वर्ग कुछ वैरिएबल नहीं है? मैंने सोचा था कि प्रोटोटाइप के पूरे बिंदु।

आप बस SuperClass के संदर्भ निर्दिष्ट कर रहे हैं उप-कोड.प्रोटोटाइप के लिए कन्स्ट्रक्टर, आपको नया ऑपरेटर को यह SubClass.prototype वस्तु बनाने का उपयोग करने की आवश्यकता < कोड> सुपरक्लास :

  // ... उपक्लासा.प्रोतिटिप = नया सुपरक्लास (); // ..  

आप उपरोक्त पंक्ति के बाद कंस्ट्रक्टर संपत्ति SubClass.prototype ऑब्जेक्ट को पुनर्स्थापित करना चाह सकते हैं, क्योंकि अगर आप ऐसा नहीं करते हैं, उप-कक्ष (जैसे उप आपके उदाहरण में) के साथ बनाए गए उदाहरणों में इनहेरिट की गई कंस्ट्रक्टर संपत्ति को गलत तरीके से इंगित करेगा < कोड> सुपरक्लास :

  उप-क्लास। प्रोटोटिप। कंस्ट्रक्टर = उप-क्लास; 

अनुशंसित लेख:


Comments