आज एक कोड की समीक्षा के दौरान, मेरे एक सहयोगी ने कुछ दिलचस्प कहा:
prototype
केवल तब उपयोगी होता है जब आपको विरासत की आवश्यकता होती है - और जब विरासत एक अच्छा विचार है ?
मैंने इस बारे में सोचा था और मुझे एहसास हुआ कि मैं आमतौर पर विरासत का उपयोग करता हूं कोड के आसपास पाने के लिए जो पहली जगह में बुरी तरह से डिजाइन किया गया था। आधुनिक OO शैली विरासत पर रचना पसंद करती है, लेकिन मुझे ऐसी किसी भी भाषा की जानकारी नहीं है, जो इसे दिल से लगाती है और वास्तव में इसे लागू करती है।
क्या कक्षाओं, वस्तुओं, विधियों, इंटरफेस, और इसी तरह की कोई सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाएं हैं, जो वर्ग-आधारित विरासत को अस्वीकार करती हैं? (यदि इस तरह के विचार से कोई मतलब नहीं है, तो क्यों नहीं?)
implements
कीवर्ड और इंटरफेस का उपयोग करके महसूस किया गया (जैसा कि राज्य की विरासत के विपरीत है और extends
किसी भी कार्यान्वयन वाले वर्गों पर कीवर्ड के उपयोग के साथ पेश किया गया व्यवहार )।
new
, this
और prototype
सभी आम उपयोग के लिए एक बहुत अधिक हैं IMO।
prototype
आपको यह भी सार्वजनिक तरीकों और गुण है कि उदाहरणों के बीच साझा किया जाना चाहिए जब लिए उपयोगी है। यह भी उपयोगी है क्योंकि यह आप ठीक ढंग से उपयोग करने के लिए अनुमति देता हैinstanceof
जावास्क्रिप्ट में ऑपरेटर:if (foo instanceof Foo) { ...
।