JavaScript Academy · Oppitunti

Perintä, super ja milloin koostaminen kannattaa

Laajenna perusluokkaa extendsillä, kutsu superia konstruktoreissa, ylikirjoita metodit turvallisesti ja opi, milloin yksinkertainen koostaminen on parempi

Oppitunti 2/38 vaihetta

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
Perintä, super ja milloin koostaminen kannattaa — kuvitus 1

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());
Perintä, super ja milloin koostaminen kannattaa — kuvitus 2

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"
Perintä, super ja milloin koostaminen kannattaa — kuvitus 3

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);
Perintä, super ja milloin koostaminen kannattaa — kuvitus 4

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);
Perintä, super ja milloin koostaminen kannattaa — kuvitus 5

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.
Perintä, super ja milloin koostaminen kannattaa — kuvitus 6

super(...) perusteiden visa

Pikatarkistus: super aliluokan konstruktorissa.

Perintä, super ja milloin koostaminen kannattaa — kuvitus 7

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.

Perintä, super ja milloin koostaminen kannattaa — kuvitus 8
Aloita maksutta

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

  1. Luokkakentät, yksityiset #‑kentät ja staattiset jäsenet
  2. Perintä, super ja milloin koostaminen kannattaa
  3. Mixin-rakenteet — yksinkertaista uudelleenkäyttöä ilman syviä hierarkioita
← Takaisin: JavaScript Academy