Por padrão, toda classe criada possui um construtor, sem parâmetros, que é criado
automaticamente e invocado quando instânciamos um objeto. Métodos construtores
são métodos especiais para configurar uma nova instância.
Exemplo 1
class minhaClasse
{
//omitido
}
let x = new minhaClasse(); //construtor padrão
Saída
-
Podemos explicitamente declara um construtor padrão, sem argumentos, de acordo com a sintaxe que pode ser
conferida abaixo:
Sintaxe
class nome_classe
{
constructor()
{
//corpo
}
}
Exemplo 2
class nome_classe
{
atributo;
constructor()
{
this.atributo = 100;
}
}
Saída
-
Para a declaração um construtor com parâmetros, basta declará-lo informando os
parâmetros separados por (,) como já foi feito nos exemplos de declaração
de parâmetros em funções.
Sintaxe
class nome_classe
{
constructor( <lista_parametros> )
{
//corpo
}
}
Exemplo 3
class minhaClasse {
idade = 0;
nome = '';
constructor(nome,idade){
this.nome = nome;
this.idade = idade;
}
}
let x = new minhaClasse('teste',999);
console.log(x.idade);
console.log(x.nome);
Saída
999
teste
Em Javascript, diferente de outras linguagens O.O, não permite que uma classe tenha mais de
um construtor. Um erro é gerado pelo compilador/interpretador como pode ser observado
no exemplo abaixo:
Exemplo 4
class minhaClasse {
constructor(){}
constructor(nome,idade){
this.nome = nome;
this.idade = idade;
}
}
Saída
SyntaxError: A class may only have one constructor