4
respostas

Dúvida sobre funções Nomeadas

Tenho uma dúvida relativamente simples, qual a diferença quando a gente vai chamar uma função nomeada em um evento, quando colocar os parenteses ou não? Percebi que tem diferença no javascript...

Por exemplo no seguinte código:

variavel.click(funcaoNomeada);

é diferente de chamar dessa forma:

variavel.click(funcaoNomeada());

Gostaria de entender a fundo esse comportamento entre os dois casos.

4 respostas

Boa noite, João! Como vai?

A diferença é que ao fazer variavel.click(funcaoNomeada()) vc está invocando a função funcaoNomeada(). Enquanto isso, ao fazer variavel.click(funcaoNomeada) vc está passando a funcaoNomeada como parâmetro para o método click().

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Gabriel obrigado pela resposta mas qual a diferença na prática? Quando usar uma e quando usar a outra?

Opa, João!

Quando vc quer passar a função como referência para um outro método vc fará variavel.metodo(funcaoNomeada). Quando vc quer executar uma função e passar o resultado dela pra outro método vc fará variavel.metodo(funcaoNomeada()).

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Então por exemplo, variavel.oneClick(funcaoNomeada), nesse cenário executa a função completa que está sendo passada por parametro.

E quando invocamos funcaoNomeada() estamos somente preocupados em pegar o "retorno" do metódo?

Exemplo:

var imc = calculaImc(peso, altura);

Desculpe perguntar tanto é que esse assunto sempre foi um pouco confuso e gostaria de esclarecer de uma vez por todas.