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

function ( )

Analisemos estes dois códigos

function calculaImc(altura, peso) {
    return peso / (altura * altura);
       }
var alturaInformada = prompt("Digite a altura informada");
var pesoInformado = prompt("Digite peso informado");

var imc= calculaImc(alturaInformada,pesoInformado);
function verifica () {
         if(input.value == segredo) {

         alert("Você acertou");

         }else{
             alert("Você errou")
         }

     }    

    button.onclick = verifica;

No primeiro caso, na atribuição de valor à variável imc, é necessário que se coloque o parâmetro.

Já no segundo caso, não só é desnecessário, como inapropriado.

Gostaria de saber o porquê de não poder usar o "( ) " no segundo caso.

E também, entender o motivo pelo qual eu tenho que usar o "( ) ", como no primeiro caso, quando vou atribuir valor à uma variável usando uma função, mesmo quando a função, não tenha conteúdo no parâmetro(como a função que aprendemos no inicio do curso- pulaLinha)

Qual a diferença nos dois exemplos, se:

1) Ambos são variáveis sendo atribuídas com valor de uma função

3 respostas

Boa noite, Clara! Como vai?

Excelente pergunta! A resposta é a seguinte:

Colocamos os parênteses após o nome da função sempre que queremos executar ela. Ou seja, se eu fizer:

  • verifica(): estou invocando imediatamente a execução da função verifica;
  • button.onclick = verifica: não estou invocando a execução da função verifica. Nesse caso o que estou fazendo é dizendo para o meu botão que quando ele for clicado deve executar a função verifica. Além disso, se eu fizesse button.onclick = verifica() o código não funcionaria direito, uma vez que por colocar os parênteses após o nome da função o Javascript iria executar ela imediatamente e não somente no clique do botão.

Entendeu a diferença de um caso pro outro?

Com relação as dúvidas sobre o segundo caso, entendi perfeitamente a explicação,

Sobre o primeiro; É necessário o uso do ( ), pois, nesse caso o código tem que exibir imediatamente as instruções?

solução!

Exatamente, Clara! No primeiro caso vc precisa colocar os parênteses pq vc quer que a função seja executada imediatamente.