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

Por que não Date.parse?

Não sou expert, só estou "brincando" um pouco com a sintaxe do ES6 e queria saber porque não usar o Date.parse ao invés de dar replace na string? Outra dúvida é se estaria errado fazer as transformações dos valores diretamente no construtor da classe:

class NegociacaoController {

  constructor() {

    let select = x => document.querySelector(x);
    this._inputData = Date.parse(select('#data').value);
    this._inputQuantidade = parseInt(select('#quantidade').value);
    this._inputValor = parseInt(select('#valor').value);
  }

  adiciona(event) {

    event.preventDefault();

    let negociacao = new Negociacao(
      this._inputData,
      this._inputQuantidade,
      this._inputValor
    );
  }
}
2 respostas

Olá, Stefanie.

Pode usar o Date.parser() sem problema nenhum e o construtor também faz sentido pra mim :-)

Lembro que o Date.parser() pega uma data em string e transforma em milisegundos desde 01 de Janeiro de 1970, 00:00:00 UTC.

solução!

Bom dia!

Se você fizer isso:

 this._inputData = Date.parse(select('#data').value);
    this._inputQuantidade = parseInt(select('#quantidade').value);
    this._inputValor = parseInt(select('#valor').value);

Estará guardando nas propriedades this._inputData, this._inputQuantidade e this._inputValor os valores dos inputs e não os inputs. Fazendo isso, você jamais será capaz de obter novos valores do formulário. Veja que não faz sentido algum, pois você precisa manter a referência para os elementos do formulário para poder obter os dados mais recentes toda vez que o usuário cadastrar uma nova negociação.

Faça um teste, tentando cadastrar mais de uma negociação. Todavia, fazer experimentações como essa só tem a engrandecer os conhecimentos, mesmo que não funcione algumas vezes.

Sucesso e bom estudo!