Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Классы
  5. extends

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

extends

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨март 2016 г.⁩.

Ключевое слово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