MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.

constructor -специальный метод, служащий для создания и инициализации объектов, созданных с использованием class.

Синтаксис

constructor([arguments]) { ... }

Описание

Им может быть только один специальный метод, с названием "constructor", находящийся в классе. Если класс содержит более одного конструктора, будет возбуждено исключение SyntaxError.

В конструкторе может быть использовано ключевое слово super, чтобы вызвать конструктор родительского класса.

Если метод constructor не будет задан вами, то будет использован метод constructor,который заложен в js по умолчанию.

Примеры

Использование метода constructor.

Данный фрагмент кода взят из classes sample (live demo).

class Square extends Polygon {
  constructor(length) {
    // Здесь вызывается конструктор родительского класса с length
    // предоставляя многоугольнику ширину и высоту
    super(length, length);
    // Заметка: В производном классе, super() должен вызываться перед тем
    // как вы сможете использовать 'this'. Иначе будет возбуждено исключение reference error.
    this.name = 'Square';
  }

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

  set area(value) {
    this.area = value;
  } 
}

Другой пример

Посмотрите на этот отрывок кода.

class Polygon {

constractor() { .......

}

.......

}

Здесь прототип  Square класса изменен, но в то же время constructor  предыдущего базового класса Polygon вызывается при создании нового экземпляра Square.

Constractors по умолчанию.

Если вы не обозначите метод constractor, будет использован constractor по умолчанию. Для базовых классов, constractor поумолчанию:

constructor() {}

Для производных классов, constructor по умолчанию:

constructor(...args) {

super(...args);

}

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

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Constructor Method' в этой спецификации.
Стандарт Initial definition.

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

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 42.0 Nightly build ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support Нет 42.0 Nightly build ? ? ? 42.0

Firefox-specific notes

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

Метки документа и участники

 Внесли вклад в эту страницу: galynag, dood
 Обновлялась последний раз: galynag,