JavaScript Academy · पाठ

इनहेरिटेंस, super और composition को कब प्राथमिकता दें

extends से आधार क्लास बढ़ाएँ, कंस्ट्रक्टर में super कॉल करें, विधियों को सुरक्षित रूप से ओवरराइड करें और जानें कि सरल composition कब बेहतर है।

पाठ 2, कुल 3 में से8 चरण

इनहेरिटेंस, super और composition को कब प्राथमिकता दें, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

समग्र दृष्टि

लक्ष्य: बिना भ्रम के बुनियादी इनहेरिटेन्स का उपयोग करना।

  • extends चाइल्ड क्लास बनाता है
  • super(...) पैरेंट कन्स्ट्रक्टर को कॉल करता है
  • किसी विधि को ओवरराइड करें; आवश्यकता हो तो super.method() कॉल करें
  • यदि संबंध “is-a” नहीं है, तो composition को प्राथमिकता दें
इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 1

extends और super

extends से चाइल्ड बनाएँ; पैरेंट कन्स्ट्रक्टर चलाने और this को तैयार करने के लिए super(name) कॉल करें।

// Base class with a small field and method
class Animal {
  constructor(name) {
    this.name = name;
  }
  info() {
    return "Animal:" + this.name;
  }
}

// Child class extends the base and calls super(...)
class Dog extends Animal {
  constructor(name, breed) {
    // must call super() before using this
    super(name);
    this.breed = breed;
  }
  speak() {
    return "woof";
  }
}

const d = new Dog("Milo", "Beagle");
console.log(d.info(), d.speak());
इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 2

विधि ओवरराइड

ओवरराइड करते समय, आधार तर्क का पुनः उपयोग करने के लिए super.method() कॉल कर सकते हैं, फिर अपना छोटा बदलाव जोड़ें।

// Override a method; keep parent behavior with super.method()
class Button {
  click() {
    return "base-click";
  }
}

class IconButton extends Button {
  click() {
    // call parent behavior, then add something
    const base = super.click();
    return base + "+icon";
  }
}

const b = new IconButton();
console.log(b.click()); // "base-click+icon"
इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 3

has-a होने पर composition को प्राथमिकता दें

यदि संबंध has-a है (कोई सहायक उपयोग करता है), तो क्लास को सरल रखने के लिए इनहेरिटेन्स के बजाय composition को प्राथमिकता दें।

// Composition: use a helper object instead of extending
class Logger {
  log(msg) {
    console.log("[log]", msg);
  }
}

class Player {
  constructor(name, logger) {
    this.name = name;
    this.logger = logger; // has-a logger
  }
  score(points) {
    this.logger.log(this.name + " +" + points);
  }
}

const logger = new Logger();
const p = new Player("Ayla", logger);
p.score(5);
इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 4

is-a बनाम has-a

इनहेरिटेन्स is-a संबंध का मॉडल बनाता है: एक Dog, Animal है। has-a सहायक कार्यों के लिए composition होता है।

// Use instanceof for a quick is-a check
console.log("Dog is Animal?", d instanceof Animal);
console.log("Player is Animal?", p instanceof Animal);
इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 5

शुरुआती शिक्षार्थियों की आदतें

सुझाव:

  • शुरुआती शिक्षार्थियों के लिए पदानुक्रम को उथला रखें।
  • सबक्लास कन्स्ट्रक्टर में सबसे पहले super(...) कॉल करें।
  • केवल आवश्यक चीज़ों को ओवरराइड करें; super.method() से पुनः उपयोग करें।
  • उपयोगिताओं और विभिन्न हिस्सों में लागू होने वाली सुविधाओं के लिए composition को प्राथमिकता दें।
इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 6

super(...) की मूल बातें प्रश्नोत्तरी

त्वरित जाँच: सबक्लास कन्स्ट्रक्टर में super।

इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 7

पुनरावलोकन

पुनरावलोकन: वास्तविक is-a संबंध के लिए extends का उपयोग करें, शुरुआत में ही super(...) कॉल करें, सावधानी से ओवरराइड करें (उपयोगी होने पर super.method() कॉल करें), और सहायक कार्यों के लिए composition को प्राथमिकता दें।

इनहेरिटेंस, super और composition को कब प्राथमिकता दें — चित्र 8
शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
59
पाठ
200

अक्सर पूछे जाने वाले प्रश्न

क्या “इनहेरिटेंस, super और composition को कब प्राथमिकता दें” पाठ निःशुल्क है?

हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “इनहेरिटेंस, super और composition को कब प्राथमिकता दें” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

“इनहेरिटेंस, super और composition को कब प्राथमिकता दें” में मैं क्या सीखूँगा?

extends से आधार क्लास बढ़ाएँ, कंस्ट्रक्टर में super कॉल करें, विधियों को सुरक्षित रूप से ओवरराइड करें और जानें कि सरल composition कब बेहतर है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।

“इनहेरिटेंस, super और composition को कब प्राथमिकता दें” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. क्लास फ़ील्ड, निजी # फ़ील्ड और static सदस्य
  2. इनहेरिटेंस, super और composition को कब प्राथमिकता दें
  3. मिक्सिन (स्वाद) — गहरी पदानुक्रम के बिना सरल पुनःउपयोग
← JavaScript Academy पर वापस जाएँ