Olá !Eu estou com várias dúvidas sobre a compreensão do processo, e ainda tenho um pouco de duvida em relação os parametros.
1) Na etapa de criação dos metodos na nova classe helper, nos criamos os dois metodos seguintes :
class DateHelper {
textoParaData(texto) {
return new Date(...texto.split('-').map((item,indice) => item - indice % 2));
}
dataParaTexto(data) {
return data.getDate()
+ '/' + (data.getMonth() + 1)
+ '/' + data.getFullYear();
}
}
No momento de criar o metodo ele necessita de parametros para que ao rodar a "função " o codigo leia os valores do parametro mencionado certo ? Agora, ao passarmos texto como parametro por exemplo, como que o codigo vai ler o que tem dentro de "texto" se nao atribuimos nenhum valor a ele. não deveria ser o parametro (this._inputDate.value....)
2) Ao criarmos a variavel data , no NegociacoesController :
adiciona(event) {
event.preventDefault();
let data = new DateHelper().textoParaData(this._inputData.value);
let negociacao = new Negociacao(
data,
this._inputQuantidade.value,
this._inputValor.value
);
console.log(negociacao);
console.log(diaMesAno);
}
}
A maneira de ler seria : variavel data recebe a "funçãotextoparadata" que esta dentro da classe datahelper ?
3)O objetivo todo é pegar o texto que nos tinhamos, transformar em um array para depois transformar esse array em uma data no tipo string mas com o formato de dia/mes/ ano certo ? Então no momento em que é criado a variavel helper nos passamos a classe DataHelper , porque queremos agora "rodar a função" que permite transformar a data em um texto no modelo dia/mes/ano certo ? mas porque passamos apenas datahelper Ai a transcrição indica que devemos adicionar em data , helper para gerar isso mas a função continua exatamente a mesma coisa so no console que indicamos helper.dataparatexto que recebe como parametro a negociacao.data ....
"Sinceramente, ao elaborar essas perguntas que devem estar confusas, comecei a entender um pouco mais kkk, mas se alguem entender o que estou perguntando e puder dar uma explicação ai eu agradeço"
4) Agora, meu codigo possui algum erro mas não estou entendo porque, o console indica que texto.split não é uma função ... segue o script
DateHelper:
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));
}
}
NegociacaoController:
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 data = new DateHelper().textoParaData(this._inputData.value);
let negociacao = new Negociacao(data,
this._inputQuantidade.value,
this._inputValor.value
);
console.log(helper.textoParaData(negociacao.data));
}
}
e ai o console indica :
DateHelper.js:14 Uncaught TypeError: texto.split is not a function
at DateHelper.textoParaData (DateHelper.js:14)
at NegociacaoController.adiciona (NegociacaoController.js:22)
at HTMLFormElement.onsubmit (index.html:14)
textoParaData @ DateHelper.js:14
adiciona @ NegociacaoController.js:22
onsubmit @ index.html:14
Bom, se você chegou até aqui ...Obrigado kkkk Abraço