--- title: constructor slug: Web/JavaScript/Reference/Classes/constructor tags: - Classes - ECMAScript6 - Experimental - JavaScript orientado a objetos - Nova versão JavaScript translation_of: Web/JavaScript/Reference/Classes/constructor ---
constructor([argumentos]) { ... }
Apenas um método especial com o nome constructor pode existir em uma classe. O erro {{jsxref("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.
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;
}
}
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ção | Status | Comentário |
|---|---|---|
| {{SpecName('ES6', '#sec-static-semantics-constructormethod', 'Constructor Method')}} | {{Spec2('ES6')}} | Definição inicial |
| {{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}} | {{Spec2('ESDraft')}} |
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}} |