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

Dúvida sobre o exercício!

Olá! Não sei o que aconteceu aqui no meu código rs.

Vejamos:

<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <body>

    <script>
        class Negociacao {

            constructor(data, quantidade, valor) {

                this._data = new Date(data.getTime()); // criando uma nova instância a partir do tempo de uma data 
                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;
            }

        }

        var negociacao = new Negociacao(new Date(), 1, 100);

        negociacao.data.setDate(negociacao.data.getDate() + 1);

        console.log( negociacao.data.setDate(negociacao.data.getDate() + 1) );

        //console.log( negociacao.data.setDate(11)  );


    </script>

  </body>
</html>

No console está retornando um número aleatório, dessa forma: '1575652195827'.

Poderiam me ajudar a entender o que está errado?

Mesmo apagando tudo e deixando apenas o console para modificar a data:

console.log( negociacao.data.setDate(11)  );

Aparece os mesmos números aleatórios conforme vou apertando F5.

Ocorre também, com o exercício assim, definido anteriormente:

<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <body>

    <script>
        class Negociacao {

            constructor(data, quantidade, valor) {

                this._data = data;
                this._quantidade = quantidade;
                this._valor = valor;

                Object.freeze(this); // congela a instância do objeto
            }

            get volume() {
                return this._quantidade * this._valor;
            }

            get data() {
                return this._data;
            }

            get quantidade() {
                return this._quantidade;
            }

            get valor() {
                return this._valor;
            }

        }

        var negociacao = new Negociacao(new Date(), 1, 100);

        negociacao.data.setDate(negociacao.data.getDate() + 1);
        console.log( negociacao.data.setDate(11)  );


    </script>

  </body>
</html>

Obrigada =)

1 resposta
solução!

Boa tarde, Henrique! Como vai?

Esse número não é aleatório. É a quantidade de milissegundos decorridos desde 1 de Janeiro de 1970 até a data que o seu objeto Date representa. É isso que o setDate() retorna.

Para saber mais: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!