Esse é o código do arquivo "app.ts" da pasta "app":
import { NegociacaoController } from "./controllers/negociacao-controller.js";
const controller = new NegociacaoController();
const form = document.querySelector('.form');
form.addEventListener('submit', event => {
event.preventDefault();
controller.adiciona();
})
Esse é o código do arquivo "negociacao-controller.ts" da pasta "Controller":
import { Negociacao } from "../models/negociacao.js";
export class NegociacaoController {
private inputData: HTMLInputElement;
private inputQuantidade: HTMLInputElement;
private inputValor: HTMLInputElement;
constructor() {
this.inputData = document.querySelector('#data');
this.inputQuantidade = document.querySelector('#quantidade');
this.inputValor = document.querySelector('#valor');
}
adiciona(): void {
const negociacao = this.criaNegociacao;
console.log(negociacao);
this.limpaFormulario();
}
criaNegociacao(): Negociacao {
const exp = /-/g;
const date = new Date(this.inputData.value.replace(exp, ','));
const quantidade = parseInt(this.inputQuantidade.value);
const valor = parseFloat(this.inputValor.value);
return new Negociacao(date, quantidade, valor);
}
limpaFormulario(): void {
this.inputData.value = '';
this.inputQuantidade.value = '';
this.inputValor.value = '';
this.inputData.focus;
}
}
Fiquei na dúvida de quando o método CONSTRUTOR da classe "NegociacaoController" foi acionado para pegar as informações da página e atribuiu às propriedades da classe "NegociacaoController".
Quando houve o clique no botão do formulário eu vi que foi acionado apenas o método "adiciona", que só pegou os valores das propriedades da classe "NegociacaoController" e os passou para o novo objeto "Negociacao", mas como que ele pegou os valores das propriedades da classe se o método construtor não foi acionado antes?
Agradeço desde já a atenção!
Sucesso na sua jornada!