No vídeo dessa aula, quando é dado um console.log no resultado do método adiciona(), é impresso um Array. Mas quando eu eu dou um console.log, o resultado está sendo um objeto da classe (hipotese), por que é um resultado bem diferente.
Minha classe NegociacaoController
class NegociacaoController {
constructor(){
let $ = document.querySelector.bind(document);
this._inputData = $('#data');
this._inputQuantidade = $('#quantidade');
this._inputValor = $('#valor');
this._contador = 0;
this._listaNegociacoes = new ListaNegociacoes();
}
adiciona(event) {
event.preventDefault();
console.log(this._inputData.value);
console.log(this._inputQuantidade.value);
console.log(this._inputValor.value);
console.log("RAW DO CAMPO:");
console.log(this._inputData);
console.log(this._inputData.className);
console.log(this._inputData.id);
console.log(this._inputData.getAttribute("diogenes"));
console.log(this._inputData.setAttribute("diogenes","teste2")); //hasAttribute(name) TRUE | FALSE
/*
VALIDAR A DATA INSERIDA
Observe ainda que se inserirmos uma data com caracteres adicionais à esquerda ou à direita,
o erro não será lançado. Por exemplo, se definirmos a data 30/09/20199, o ano será truncado
para os primeiros dígitos. Se informarmos ao método a data 130/09/2019, o dia será truncado
para os 2 últimos dígitos.
Para que a validação funcione corretamente, acrescente marcadores na expressão regular para
indicar que queremos validar o texto exato, e nenhum caracter a mais:
*/
if(!/^\d{4}-\d{2}-\d{2}$/.test(this._inputData.value)) throw new Error('Deve estar no formato aaaa-mm-dd');
// ADICIONAR A LISTA
this._listaNegociacoes.adiciona(this.criaNegociacao);
console.log(this._listaNegociacoes.negociacoes); // AQUI QUE ESTÁ O PROBLEMA
this.limpaFormulario();
}
// CRIAR A NEGOCIAÇÃO
criaNegociacao(){
// CONVERTER A DATA PARA DIA MÊS ANO
let data = new DateHelper().converterData(new Date(this._inputData.value.split('-')));
return new Negociacao(
data,
this._inputQuantidade.value,
this._inputValor.value
);
}
// LIMPAR O FORMULÁRIO APÓS UMA INSERÇÃO DA NEGOCIAÇÃO
limpaFormulario(){
console.log("LIMPANDO O FORMULÁRIO");
this._inputData.value = "";
this._inputQuantidade.value= 1;
this._inputValor.value = 0.0;
this._inputData.focus();
}
}
O meu console.log retorna o seguinte:
[ƒ]
0: ƒ criaNegociacao()
arguments: (...)
caller: (...)
length: 0
name: "criaNegociacao"
__proto__: ƒ ()
[[FunctionLocation]]: NegociacaoController.js:55
[[Scopes]]: Scopes[2]
length: 1
__proto__: Array(0)
Ao invés de um array como mostrado O que fiz de errado?
Obrigado