A data, a quantidade e o valor não sumiram quando apertei incluir que nem aconteceu com o professor Flavio, é para isso acontecer? Eu uso Windows.
Meu código do NegociacaoController.js está assim:
class NegociacaoController {
constructor() {
let $ = document.querySelector.bind(document);
this._inputData = $('#data');
this._inputQuantidade = $('#quantidade');
this._inputValor = $('#valor');
}
adiciona(event) {
event.preventDefault();
let negociacao = new Negociacao(
DateHelper.textoParaData(this._inputData.value),
this._inputQuantidade.value,
this._inputValor.value
);
console.log(negociacao)
console.log(DateHelper.dataParaTexto(negociacao.data));
}
}
Meu código do DataHelper está assim:
class DateHelper {
constructor() {
throw new Error('Está classe não pode ser instanciada');
}
static dataParaTexto(data) {
return `${data.getDate()}/${data.getMonth() + 1}/${data.getFullYear()}`;
}
static textoParaData(texto) {
if (!/\d{4}-\d{2}-\d{2}/.test(texto))
throw new Error('Deve estar no formato aaaa-mm-dd');
return new Date(...texto.split('-').map((item, indice) => item - indice % 2));
}
}
E meu código de Negociacao.js esta assim:
class Negociacao {
constructor(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;
}
}