ऐसा इसलिए है क्योंकि आप जिस विशिष्ट कार्य को कन्स्ट्रक्टर में परिभाषित करते हैं वह प्रोटोटाइप के माध्यम से विरासत में मिलता है।
EcmaScript specification से:
हर वस्तु एक निर्माता द्वारा बनाई गई अपनी निर्माता के "प्रोटोटाइप" संपत्ति के मूल्य का एक अंतर्निहित संदर्भ (वस्तु के प्रोटोटाइप कहा जाता है) है। इसके अलावा, एक प्रोटोटाइप में गैर-शून्य इसके प्रोटोटाइप के निहित संदर्भ हो सकता है, और इसी तरह; इसे प्रोटोटाइप श्रृंखला कहा जाता है। जब किसी ऑब्जेक्ट में किसी प्रॉपर्टी में कोई संदर्भ दिया जाता है, कि संदर्भ उस नाम की संपत्ति में उस ऑब्जेक्ट की उस प्रोटोटाइप श्रृंखला में है जिसमें उस नाम की संपत्ति है। अन्य शब्दों में, पहले उल्लिखित ऑब्जेक्ट की जांच संपत्ति के लिए की जाती है; यदि उस ऑब्जेक्ट में नामित संपत्ति है, तो यह संपत्ति है जिसमें संदर्भ संदर्भित करता है; यदि वह ऑब्जेक्ट नामित संपत्ति नहीं है, तो उस ऑब्जेक्ट के प्रोटोटाइप की जांच अगली है; और इसी तरह।
संक्षेप में: जब कोई फ़ंक्शन (या उसके नाम से कोई भी संपत्ति) ढूंढते हैं, तो आप ऑब्जेक्ट से प्रारंभ करते हैं और फिर प्रोटोटाइप श्रृंखला में जाते हैं।
स्रोत
2012-12-05 08:21:06
एक बहुत अच्छी व्याख्या: http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript –
FYI: यदि आपको आवश्यकता हो तो आप प्रोटोटाइप विधि को कॉल कर सकते हैं: 'p। prototype.show.call (ओ) ' – Prinzhorn