Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Эта страница была переведена с английского языка силами сообщества. Вы тоже можете внести свой вклад, присоединившись к русскоязычному сообществу MDN Web Docs.

extends

BaselineWidely available

Ключевое словоextends используется вобъявлении класса или ввыражениях класса для создания дочернего класса.

Синтаксис

class ChildClass extends ParentClass { ... }

Описание

Ключевое словоextends может быть использовано для создания дочернего класса для уже существующего класса или встроенного объекта.

Свойство.prototype родительского класса или объекта должно бытьObject илиnull.

Примеры

Использованиеextends

В первом примере создаётся дочерний класс с именемSquare от класса с именемPolygon. Этот пример был взят изlive demo(source).

js
class Square extends Polygon {  constructor(length) {    // Здесь вызывается конструктор родительского класса,    // в который передаётся свойство length в качестве    // аргументов, соответствующих полям width и height,    // класса Polygon    super(length, length);    // Примечание:    // В конструкторе класса, метод super() должен быть вызван    // перед использованием this. В противном случае, будет    // выброшена ошибка.    this.name = "Square";  }  get area() {    return this.height * this.width;  }}

Расширение встроенных объектов с помощьюextends

Этот пример расширяет встроенный объектDate. Пример взят изlive demo(source).

js
class myDate extends Date {  constructor() {    super();  }  getFormattedDate() {    var months = [      "Jan",      "Feb",      "Mar",      "Apr",      "May",      "Jun",      "Jul",      "Aug",      "Sep",      "Oct",      "Nov",      "Dec",    ];    return (      this.getDate() + "-" + months[this.getMonth()] + "-" + this.getFullYear()    );  }}

Расширениеnull

Расширениеnull работает как и с обычным классом, за исключением того, что прототип объекта не наследуетObject.prototype.

js
class nullExtends extends null {  constructor() {}}Object.getPrototypeOf(nullExtends); // Function.prototypeObject.getPrototypeOf(nullExtends.prototype); // nullnew nullExtends(); //ReferenceError: this is not defined

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-class-definitions

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp