Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Momento de execução do Constructor

Boa noite, pelo que entendi quando temos uma classe e dentro dela um metodo e um constructor, eu posso utilizar os valores do constructor no meu metodo adiciona(event) como por exemplo no código abaixo:

class NegociacaoController {

  constructor() {

            let $ = document.querySelector.bind(document);

            this.inputData = $('#data');
            this.inputQuantidade =  $('#quantidade');
            this.inputValor = $('#valor');
  }

  adiciona(event) {
        event.preventDefault();


        console.log(this.inputData.value);
        console.log(this.inputQuantidade.value);
        console.log(this.inputValor.value);

  }
}

No video de exemplo foi mecionado que está sendo criado esta classe desta forma devido ao constructor armazenar em cache os valores e dentro do método adiciona(event) conseguimos acessar os valores que foram armazenadas no constructor. A minha duvida é a seguinte: Se quando acessamos o metodo adiciona(event) em nenhum momento instanciamos a constructor, em que momento ele executa a constructor para conseguir guardar as variaveis no cache?

4 respostas
solução!

Bom dia, Henrique! Como vai?

Muito boa a sua pergunta! Isso é um conceito da programação orientada a objetos! O construtor de uma classe sempre é executado quando criamos um objeto da classe em questão! Ou seja, especificamente nesse caso do exemplo, o construtor será executado sempre que fizermos new NegociacaoController()!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Henrique, boa tarde!

O construtor é chamado na instanciação da classe, ou seja, na criação do objeto. Esse momento não seria na chamada do método e sim e na chamada da classe. Bom, mas então em qual momento a classe é chamada?

Se você se lembrar dentro do index.html antes da tag body fechar você abre uma tag script

    <script>
        var negociacaoController = new NegociacaoController();
    </script>

É nesse momento, onde você escreve o new que o construtor é chamado. Depois de instanciado, o evento de adicionar só vai rodar após o clique no botão e não no carregamento do código

Espero ter ajudado e bons estudos!

Duvida sanada! Obrigado a todos pelo esclarecimento.

Por nada, Henrique! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!