extends

Słowo kluczowe extends jest używane w deklaracjach klas lub wyrażeniach class do tworzenia klasy jako elementu potomnego innej klasy.

Składnia

class ChildClass extends ParentClass { ... }

Opis

Słowo kluczowe extends może być użyte do dziedziczenia po niestandardowych klasach lub standardowych obiektach wbudowanych.

Prototypem rozszerzenia musi być Object lub null.

Przykłady

Zastosowanie extends

Pierwszy przykład tworzy klasę Square rozszerzającą klasę Polygon. live demo (source).

class Square extends Polygon {
  constructor(length) {
    // Wywołanie konstruktora klasy nadrzędnej
    // określenie szerokości i wysokości wielokątu
    super(length, length);
    // Uwaga: W pochodnych klasach, super() musi być wywołane wcześniej niż
    // pierwsze użycie 'this'. W przeciwnym wypadku pojawi się błąd odniesienia.
    this.name = 'Square';
  }

  get area() {
    return this.height * this.width;
  }
}

Zastosowanie extends z obiektami wbudowanymi

Poniższy przykład rozszerza wbudowany obiekt Date. live demo (source).

class myDate extends Date {

  getFormattedDate() {
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    return this.getDate() + '-' + months[this.getMonth()] + '-' + this.getFullYear();
  }
}

Specyfikacje

Specyfikacja
ECMAScript (ECMA-262)
The definition of 'extends' in that specification.

Kompatybilność

BCD tables only load in the browser

Zobacz też