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

Classes Abstratadas

Boa tarde/noite, minha dúvida seria referente as classes abstratas, conforme mencionado na aula 06.10 de Javascript Avançado 1 o ideal seria que a classe View não fosse instanciada, poderia ser utilizando o Typescript e incluindo o Abstract ou lançando no ECMASCRIPT 6 o throw new error no Constructor.

Sabendo disto surge a minha dúvida: se a classe View se trata de uma classe que não pode ser instanciada e no Constructor ela por padrão possui atributos, como fazer em JavaScript para que a classe consiga utilizar os atributos da Constructor, e "bloquear" sua instancia sem lançar o throw new error. Segue abaixo código da view utilizado:

class View{

    constructor(elemento){
        this._elemento = elemento;
    }

}

Obrigado!

3 respostas
solução!

Fala aí Henrique, tudo bem? Nesse caso você poderia transformar seus atributos para atributos estáticos, onde, eles pertencem a classe e não a instância.

Claro que existe outras maneiras de resolver o problema, mas, uma delas seria essa.

O problema dai é que esse valor será compartilhado para toda as classes (dependendo do cenário não é aconselhável).

Espero ter ajudado.

Só para ver se entendi. Para mim conseguir deixar a Classe como "não instanciavel" eu teria que abrir mão dos parametros do construtor e deixar meus atributos estáticos?

Exatamente, quando instanciamos uma classe, nada mais, nada menos, estamos criando um objeto novo dela.

Porém, para criar um novo objeto, precisamos passar pelo construtor, ele tendo ou não parâmetros.

Caso você não tenha definido um construtor, será utilizado um default.

A sua necessidade e que isso não deixa possível, logo, você vai precisar abrir mão do uso de construtores.

Dessa maneira, você vai precisar usar informações e métodos da classe e não do objeto retornado por uma instancia dela e para fazer isso, podemos fazer uso dos estáticos.

Espero ter ajudado.