--- title: extends slug: Web/JavaScript/Reference/Classes/extends tags: - Classes - ECMAScript 2015 - JavaScript translation_of: Web/JavaScript/Reference/Classes/extends ---
Słowo kluczowe extends
jest używane w deklaracjach klas lub wyrażeniach class do tworzenia klasy jako elementu potomnego innej klasy.
class ChildClass extends ParentClass { ... }
Słowo kluczowe extends
może być użyte do dziedziczenia po niestandardowych klasach lub standardowych obiektach wbudowanych.
Prototypem rozszerzenia musi być {{jsxref("Object")}} lub {{jsxref("null")}}.
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; } }
extends
z obiektami wbudowanymiPoniższy przykład rozszerza wbudowany obiekt {{jsxref("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(); } }
Specyfikacja |
---|
{{SpecName('ESDraft', '#sec-class-definitions', 'extends')}} |
{{Compat("javascript.classes.extends")}}