1
resposta

Classe Negociacao não lida no console do browser

minha negociação no console.log() retornou assim :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade segue o codigo abaixo:

NegociacaoController

class NegociacaoController {
  constructor() {
    let $ = document.querySelector.bind(document);
    this._inputData = $("#data");
    this._inputQuantidade = $("#quantidade");
    this._inputValor = $("#valor");
  }


    adiciona(event) {

      event.preventDefault();

      let data = new Date(...
        this._inputData.value
        .split('-')
        .map((item, indice) => item - indice % 2)
    );

    let negociacao = new Negociacao(
        data,
        this._inputQuantidade.value,
        this._inputValor.value
      );

      console.log(negociacao);
  }
}

Negociacao

class Negociacao {

    construtor(data, quantidade, valor) {

        this._data = new Date(data.getTime());
        this._quantidade = quantidade;
        this._valor = valor;
        Object.freeze(this);

    }

    get volume() {

        return this._quantidade * this._valor;

    }

    get data() {
        return new Date(this._data.getTime());
    }

    get quantidade() {
        return this._quantidade;
    }

    get valor() {
        return this._valor;
    }
}

index.html (so a importação)

<script src="js/app/models/Negociacao.js"></script>
    <script src="js/app/controllers/NegociacaoController.js"></script>
    <script>
        let negociacaoController = new NegociacaoController();
    </script>
1 resposta

Olá Igor, tudo bem com você?

Peço desculpas pela demora no retorno.

O comportamento apresentado, está acontecendo devido a um erro de digitação no momento da declaração do método construtor da classe Negociacao. No código apresentado o método foi declarado como construtor (com apenas um c) o correto é constructor (com dois cs).

Basta acessar o arquivo Negociacao.js e modificar o método construtor da classe Negociacao deixando como apresentado abaixo.

constructor(data, quantidade, valor) {

    this._data = new Date(data.getTime());
    this._quantidade = quantidade;
    this._valor = valor;
    Object.freeze(this);

}

Após a mudança, salve o arquivo Negociacao.js.

Abra o arquivo index.html no navegador. Adicione uma nova negociação e verifique no painel de desenvolvedor (pressione ) o resultado da execução do script.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!