Perintä, super ja milloin koostaminen kannattaa
Laajenna perusluokkaa extendsillä, kutsu superia konstruktoreissa, ylikirjoita metodit turvallisesti ja opi, milloin yksinkertainen koostaminen on parempi
Perintä, super ja milloin koostaminen kannattaa on ilmainen JavaScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu JavaScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Kokonaiskuva
Tavoite: Käyttää perintää ilman turhaa sekaannusta.
- extends luo aliluokan
- super(...) kutsuu yliluokan konstruktoria
- Metodi voidaan ylikirjoittaa ja tarvittaessa kutsua super.method()-metodia
- Jos kyseessä ei ole ”is-a”-suhde, suosikaa koostamista

extends + super
Luokaa aliluokka komennolla extends; kutsukaa super(name)-konstruktoria suorittaaksenne yliluokan konstruktorin ja alustaaksenne this-olion.
// 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());

Metodin ylikirjoitus
Metodia ylikirjoitettaessa voitte kutsua super.method()-metodia yliluokan logiikan uudelleenkäyttöä varten ja lisätä sitten oman muutoksenne.
// 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"

Suosikaa koostamista has-a-suhteessa
Jos suhteessa on kyse has-a-suhteesta eli apurin käyttämisestä, suosikaa koostamista perinnän sijaan, jotta luokat pysyvät yksinkertaisina.
// 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);

is-a vai has-a
Perintä mallintaa is-a-suhdetta: Dog on Animal. Koostaminen sopii has-a-suhteen apureihin.
// Use instanceof for a quick is-a check
console.log("Dog is Animal?", d instanceof Animal);
console.log("Player is Animal?", p instanceof Animal);

Aloittelijan käytännöt
Vinkkejä:
- Pitäkää hierarkiat matalina aloittelijoita varten.
- Kutsukaa super(...)-konstruktoria ensin aliluokan konstruktoreissa.
- Ylikirjoittakaa vain tarvittava ja käyttäkää logiikkaa uudelleen super.method()-metodilla.
- Suosikaa koostamista apuohjelmille ja poikittaisille toiminnoille.

super(...) perusteiden visa
Pikatarkistus: super aliluokan konstruktorissa.

Kertaus
Kertaus: Käyttäkää extends-määritystä todelliseen is-a-suhteeseen, kutsukaa super(...)-konstruktoria ajoissa, ylikirjoittakaa harkiten (kutsukaa tarvittaessa super.method()-metodia) ja suosikaa koostamista apureille.

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 59
- Oppitunnit
- 200
Usein kysytyt kysymykset
Onko oppitunti ”Perintä, super ja milloin koostaminen kannattaa” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa JavaScript Academy-oppimispolun 3 oppituntia, myös oppitunnin “Perintä, super ja milloin koostaminen kannattaa”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Perintä, super ja milloin koostaminen kannattaa”?
Laajenna perusluokkaa extendsillä, kutsu superia konstruktoreissa, ylikirjoita metodit turvallisesti ja opi, milloin yksinkertainen koostaminen on parempi Harjoittelet JavaScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni JavaScript Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin JavaScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Perintä, super ja milloin koostaminen kannattaa”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä JavaScript Academy-oppitunnilla?
Kyllä. Jokainen JavaScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet
- Perintä, super ja milloin koostaminen kannattaa
- Mixin-rakenteet — yksinkertaista uudelleenkäyttöä ilman syviä hierarkioita