Flávio, fiz o vídeo até o final mas está apresentando um erro que não estou sabendo resolver. Pode ser que seja um detalhe errado .
Está apresentando erro na instrução console.log(negociacao.data); //ou console.log(helper.dataParaTexto(negociacao.data));
Erros: "Negociacao.js:24 Uncaught TypeError: data.getTime is not a function at Negociacao.get data [as data] "
Seguem os códigos:
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(data.getTime());
}
get quantidade(){
return this._quantidade;
}
get valor() {
return this._valor;
}
}
class NegociacaoController {
constructor(){
let $ = document.querySelector.bind(document);
this._inputData = $('#data');
this._inputQuantidade = $('#quantidade');
this._inputValor = $('#valor');
}
adiciona(event) {
event.preventDefault();
let helper = new DateHelper();
let negociacao = new Negociacao(
helper.textoParaData(this._inputData.value),
this._inputQuantidade,
this._inputValor
);
console.log(negociacao);
console.log(negociacao.data);
console.log(helper.dataParaTexto(negociacao.data));
}
}
class DateHelper {
dataParaTexto(data) {
return data.getDate()
+ '/' + (data.getMonth() + 1)
+ '/' + data.getFullYear();
}
textoParaData(texto) {
return new Date(...texto.split('-').map((item,indice) => item - indice % 2));
}
}