constructor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

O construtor é um método especial para criar e inicializar um objeto criado a partir de uma classe.

Sintaxe

constructor([argumentos]) { ... }

Descrição

Apenas um método especial com o nome constructor pode existir em uma classe. O erro SyntaxError será mostrado se a classe contiver mais de um método constructor.

Um construtor pode usar a palavra reservada super para se referir ao construtor da classe pai (superior).

Um construtor padrão será usado se você não especificá-lo*.*

Exemplos

Usando o método constructor

O trecho de código foi fornecido por exemplo de classes (live demo).

js
class Quadrado extends Poligono {
  constructor(comprimento) {
    // super chama o construtor da classe pai que vai atribuir comprimento para
    // os atributos comprimento e altura herdados pela nossa classe filha Quadrado
    super(comprimento, comprimento);
    // Nas classes filhas, super() deve ser chamado antes de usar o this. Sem ele
    // vai ocorrer um erro de referência. O this agora se refere a classe filha Quadrado
    this.nome = "Quadrado";
  }

  // os atributos a seguir são herdados da classe pai Poligono: altura, comprimento e area.

  get area() {
    return this.altura * this.comprimento;
  }

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

Construtores padrão (constructors)

Um construtor padrão será usado pela classe caso nenhum seja especificado. Para as classes de base o construtor padrão é:

js
constructor() {} //construtor criado por padrão

Para as classes filhas o construtor padrão é:

js
constructor(...args) {
  super(...args);
}

Especificações

Specification
ECMAScript Language Specification
# sec-static-semantics-constructormethod

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também