Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Também está correto dessa forma?

Eu posso fazer um return depois de avisar que o objeto não deve ser instanciado daquela maneira? Segue o código:

    constructor(saldoInicial, numero, agencia, cliente){
        if (this.constructor == Conta){
            console.log('Você não pode instanciar um objeto do tipo Conta.');
            return;
        }

        this._numero = numero;
        this._agencia = agencia;
        this._cliente = cliente;
        this._saldo = saldoInicial;
    }

Dessa forma, será criado um objeto Conta sem nenhum atributo (pelo menos foi o que apareceu quando usei console.log(conta)), indicando ainda mais que quem escreveu o código cometeu um erro.

Eu também queria saber se há uma forma de bloquear completamente a chamada de new Conta(), de forma que um erro fosse gerado, igual quando tentamos atribuir à uma propriedade que tem apenas um getter.

1 resposta
solução!

Oi, João! Tudo bem?

Uma solução para o return no seu código seria apenas gerar um erro quando this.constructor == Conta dessa maneira:

if (this.constructor == Conta){
            throw new Error('Você não pode instanciar um objeto do tipo Conta.')
}

Já para fazer com que Conta não pudesse ser instanciada seria interessante torná-la uma Classe Abstrata.

Você pode saber mais sobre classes, heranças e funções em:

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software