Olá, Heitor!
O que acontece aqui é que, quando instanciamos o NegociacaoController
, ele é criado e mantido na memória. No entanto, quando chamamos a função adiciona()
, ela não cria uma nova instância do NegociacaoController
, mas sim acessa a instância já existente.
A função adiciona()
está configurada para capturar os valores atuais dos campos do formulário no momento em que é chamada. Portanto, mesmo que o NegociacaoController
tenha sido instanciado antes da submissão do formulário, a função adiciona()
sempre irá capturar os valores mais recentes dos campos do formulário.
Sendo assim imagine que o NegociacaoController
é uma pessoa com uma câmera que está pronta para tirar uma foto (ou seja, capturar os valores dos campos do formulário). Mesmo que a pessoa esteja pronta (ou seja, a instância NegociacaoController
tenha sido criada), a foto só será tirada (ou seja, os valores dos campos só serão capturados) quando o botão de captura for pressionado (ou seja, a função adiciona()
for chamada), é apenas uma analogia espero que tenha feito um pouco de sentido.
Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!