Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

É possível ter mais de um tipo de construtor para uma mesma classe no ES6? Isto é, existe algo como o exemplo abaixo?

class Negociacao {

    constructor(){
            this.data = new Date();
            this.quantidade = 1;
            this.valor = 0;
      }

    constructor(data, quantidade, valor){
        this.data = data;
        this.quantidade = quantidade;
        this.valor = valor;
    }

}
4 respostas
solução!

Oi Emerson, tudo bem?

Da pra você usar valores default, por exemplo:

class Negociacao {

    constructor(data=new Date(), quantidade=1, valor=0.0){
        this.data = data;
        this.quantidade = quantidade;
        this.valor = valor;
    }

}

Dessa forma, se você não enviar os parâmetros, esses serão os valores considerados.

Abraços.

Não há sobrecarga de construtor em JavaScript como em linguagens como Java ou C#. Algo que pode ser interessante é o que o Alexa acabou de postar, sobre parâmetros opcionais. Caiu igual a uma luva para seu exemplo.

Obrigado, Alex e Flavio!

Essa questão dos valores default nos parâmetros já existia na especificação anterior do ES? Ainda não havia encontrado nem usado código com isso em JavaScript. Usei com outras linguagens como PHP, mas nunca tinha visto com JavaScript.

Passou a existir no es2015 (es6).