Olá, Thaynara!
Ótima pergunta! A diferença entre colocar uma função com () e sem () é bem importante de entender.
Quando você coloca os parênteses após o nome da função, como em filtrarLivros()
, você está chamando a função imediatamente. Ou seja, ela será executada no momento em que o código for lido.
Por outro lado, quando você passa apenas o nome da função, como em filtrarLivros
, você está passando a referência da função para o evento click
. Isso significa que a função será executada somente quando o evento click
ocorrer.
No seu exemplo, se você usar filtrarLivros()
com os parênteses, a função será chamada imediatamente e o retorno dela será passado para o evento click
. Porém, se você usar filtrarLivros
sem os parênteses, a função será executada somente quando o evento click
ocorrer.
Vamos supor que a função filtrarLivros
retorne um valor. Se você usar filtrarLivros()
com os parênteses, o retorno dessa função será passado para o evento click
. Por outro lado, se você usar filtrarLivros
sem os parênteses, a própria função será passada para o evento click
, sem executá-la imediatamente.
Portanto, no seu caso, se você quer que a função filtrarLivros
seja executada apenas quando ocorrer o evento click
, você deve passar apenas o nome da função, sem os parênteses.
Espero ter ajudado e bons estudos!