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 2016.

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® 2025 Language Specification
# sec-static-semantics-constructormethod

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
constructor

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Has more compatibility info.

Veja também