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 conter 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).
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 é:
constructor() {} //construtor criado por padrão
Para as classes filhas o construtor padrão é:
constructor(...args) { super(...args); }
Especificações
Especificação | Status | Comentário |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Constructor Method' in that specification. |
Standard | Definição inicial |
ECMAScript 2017 Draft (ECMA-262) The definition of 'Constructor Method' in that specification. |
Draft |
Compatibilidade de navegadores
Download da versão Firefox para testes (Nightly) em: https://nightly.mozilla.org/
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suporte básico | Chrome(42.0) | Nightly | Desconhecido | Desconhecido | Desconhecido |
Construtores padrão | Desconhecido | Nightly | Desconhecido | Desconhecido | Desconhecido |
Característica | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Suporte básico | Não | Chrome(42.0) | CompatNightly | Desconhecido | Desconhecido | Desconhecido | CompatChrome(42.0) |
Construtores padrão | Desconhecido | Desconhecido | CompatNightly | Desconhecido | Desconhecido | Desconhecido | Desconhecido}} |
Veja também
Etiquetas do documento e colaboradores
Etiquetas:
Colaboradores desta página:
deadkff01,
ThiagoSchetini
Última atualização por:
deadkff01,