coffeescript - Extending Classes with new properties without overriding the main constructor -


सामान्य व्यक्ति वर्ग को ध्यान में रखते हुए:

  वर्ग व्यक्ति निर्माणकर्ता : (@firstName, @lastName) - & gt; SayName: - & gt; Console.log "नमस्ते, im # {@ firstName} # {@ lastName}"  

तब मैं इस वर्ग को एक नया, जिसे कर्मचारी उसमें एक अतिरिक्त संपत्ति है स्थिति :

  वर्ग कर्मचारी व्यक्ति निर्माणकर्ता को विस्तारित करता है: (@ स्थिति) - & gt;  

इस के साथ समस्या यह है कि आईएम को व्यक्ति निर्माता को ओवरराइड कर रहा है, इसलिए मेरे कर्मचारियों के उदाहरणों को प्रथम नाम और अंतिम नाम वेरिएबल्स।

कन्स्ट्रक्टर फ़ंक्शन को रीडिफाईंग किए बिना और व्यक्ति वर्ग से उन गुणों को प्राप्त करने के बिना, इसे प्राप्त करने का सबसे अच्छा तरीका क्या होगा?

धन्यवाद।

उह, ठीक है, आपने क्षमता कन्स्ट्रक्टर में एक पहला और अंतिम नाम स्वीकार करने के लिए तो क्या मैं अनुमान लगाता हूं कि आप बेस क्लास कन्स्ट्रक्टर आर्ग्यूमेंट्स और साथ ही अतिरिक्त तर्कों को स्वीकार करना चाहते हैं?

ऐसा कुछ आधार क्लास कन्स्ट्रक्टर से कोई भी तर्क के साथ काम कर सकता है।

  वर्ग व्यक्ति कन्स्ट्रक्टर: (@ फ़ेस्टनाम, @लैस्टनाम) - & gt; SayName: - & gt; Console.log "हाय, आईएम # {@ प्रथम नाम} # {@ lastName}" वर्ग कर्मचारी कर्मचारी का निर्माणकर्ता को बढ़ाता है: (आर्ग्स ..., @ स्थिति) - & gt; सुपर ड्यूड = नया कर्मचारी 'शूट्य', 'मैकफैस', 1 ड्यूड। सूट () # हाय, आईएम शूटिज़ मैकफ़ेस कंसोल.लाग "स्थिति: # {ड्यूड.शोध}" # स्थिति: 1  

यहां हम किसी भी तर्क को सोखने के लिए स्प्लेट ( ... ) का उपयोग करते हैं, जिसे हमें नाम की आवश्यकता नहीं है। इन सभी तर्कों को परस्पर रूप से सुपर के लिए पारित किया जाता है जो आधार वर्ग निर्माता है आखिरी तर्क अतिरिक्त तर्क होगा जिसे आप कैप्चर करना चाहते हैं।


Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

c# - MySQL Parameterized Select Query joining tables issue -