Class: TesteController
class TesteController {
constructor() {
alert('Objeto sendo criado');
let $ = document.querySelector.bind(document);
this._inputData = $('#data');
this._inputQuantidade = $('#quantidade');
this._inputValor = $('#valor');
console.log(this._inputData.value);
console.log(this._inputQuantidade.value);
console.log(this._inputValor.value);
}
add(event) {
event.preventDefault();
alert('Function action...');
console.log(this._inputData.value);
console.log(this._inputQuantidade.value);
console.log(this._inputValor.value);
}
}
Trecho código da view
<script src="js/app/controllers/TesteController.js"></script>
<script>
let testeController = new TesteController();
</script>
No trecho acima estou 'importando' a classe no html/view em seguida estou instanciando-a, nesse momento o construtor é executado contudo à atribuindo os valores do DOM as variáveis/atributos this.inputData, this.inputQuantidade e this._inputValor.
Com isso vem a minha dúvida, no formulário coloquei o evento onsubmit para chamar o método add da class TesteController
<form class="form" onsubmit="testeController.add(event)">
Como podemos ver o método apenas imprime no console os valores dos atributos da class. E pela minha supresa ele exibe os valores informado no formulário, porém apenas o construtor dentro da classe faz essa atribuição e como o objeto já foi instanciado o mesmo não é reexecutado. Gostaria de saber como funciona essa transação?
Trecho de código da class TesteController.js
add(event) {
event.preventDefault();
alert('Function action...');
console.log(this._inputData.value);
console.log(this._inputQuantidade.value);
console.log(this._inputValor.value);
}
Peço desculpas se não fui capaz de externar a minha dúvida de forma clara.