class

Deklaracja klasy tworzy now─ů klas─Ö z dan─ů nazw─ů, u┼╝ywaj─ůc dziedziczenia opartego na prototypach.

Mo┼╝esz tak┼╝e zdefiniowa─ç klas─Ö, u┼╝ywaj─ůc wyra┼╝enia class. W odr├│┼╝nieniu jednak od wyra┼╝enia class, deklaracja klasy nie pozwala na ponowne zadeklarowanie istniej─ůcej klasy i w takim przypadku zwr├│ci b┼é─ůd.

Składnia

class nazwa [extends] {
  // ciało klasy
}

Opis

Cia┼éo klasy w deklaracji klasy jest wykonywane w  trybie ┼Ťcis┼éym. Konstruktor jest opcjonalny.

Deklaracje klas nie s─ů hoisted (w odr├│┼╝nieniu od deklaracji funkcji).

Przykłady

Prosta deklaracja klasy

W poni┼╝szym przyk┼éadzie, najpierw definiujemy klas─Ö o nazwie Polygon, a nast─Öpnie rozszerzamy j─ů do klasy Square. Zwr├│─ç uwag─Ö na to, ┼╝e super(), u┼╝yte w konstruktorze, mo┼╝e byc u┼╝yte jedynie w konstruktorach i musi by─ç wywo┼éane przed u┼╝yciem s┼éowa kluczowego this.

class Polygon {
  constructor(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
  }
}

class Square extends Polygon {
  constructor(length) {
    super(length, length);
    this.name = 'Square';
  }
}

Pr├│ba podw├│jnej deklaracji klasy

Pr├│ba ponownego zadeklarowania klasy, przy u┼╝yciu deklaracji klasy, spowoduje wyst─ůpienie b┼é─Ödu.

class Foo {};
class Foo {}; // Uncaught SyntaxError: Identifier 'Foo' has already been declared

Taki sam b┼é─ůd jest zwracany, gdy klasa jest zdefiniowana przed u┼╝yciem wyra┼╝enia klasy.

var Foo = class {};
class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared

Specyfikacje

Wsparcie przegl─ůdarek

BCD tables only load in the browser

Zobacz te┼╝