2
respostas

[Dúvida] Sobre a chamada da função limpaCampo() em relação as demais

Tenho notado uma diferença na chamada função limpaCampo em relação as demais

function limpaCampo(){
    chute = document.querySelector('input');
    chute.value = '';
}

Toda vez que é chamada é sempre dentro de uma outra função.

Exemplo 1

  function verificarChute(){
    //Recebe o valor pois usa o campo imput e value para pegar o valor
    let chute = document.querySelector('input').value;
    if (chute == numeroSecreto){
        exibirTextoNaTela('h1', 'Parabéns')
        let palavraTentativa = tentativas > 1 ? `tentativas`:`tentativa`;
        let mensagensTentativas =`Você encontrou o número secreto com ${tentativas} com ${palavraTentativa}`        
        exibirTextoNaTela('p', mensagensTentativas)
        //Aqui vai afetar o botão novo Jogo, 
        // getElemenById vai agir sobre o id, nesse caso do botão, 
        // que deve ser escrito igualmente
        //remove.Attribute: Remove atributos, no caso [disabled] do botão, que está na parte html
        document.getElementById('reiniciar').removeAttribute('disabled');        
    }else if (chute > numeroSecreto){
        exibirTextoNaTela('p', 'Numero é menor')
    }else{
        exibirTextoNaTela('p', 'Número é maior')
    }
    tentativas++;
    **limpaCampo()**      
}
 

`Exemplo 2

 function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    **limpaCampo()**;
    tentativas = 1;
    exibirMensagemInicial(); 
    document.getElementById('reiniciar').setAttribute('disabled', true)// setAttrinute(Estaus, verdadeiro ou falso), no caso , true pois que que seja disable   
}

Mas outras como exibirMensgemInicial() , são chamadas tanto fora de qualquer outra função como dentro como no exemplo abaixo

function exibirMensagemInicial(){
   exibirTextoNaTela('h1', 'Jogo do número secreto');
   exibirTextoNaTela('p', 'Escolha um número entre 01 e 10');
}
**exibirMensagemInicial()** ` 
function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limpaCampo();
    tentativas = 1;
   ** exibirMensagemInicial(); **
    document.getElementById('reiniciar').setAttribute('disabled', true)// setAttrinute(Estaus, verdadeiro ou falso), no caso , trSue pois que que seja disable   
}

Gostaria de entender a diferença por que uma é chamada dentro de outra função e outra não.

2 respostas

Oi Ivan,

A diferença na forma como limpaCampo() e exibirMensagemInicial() são chamadas reside na sua função e no contexto em que são utilizadas. 💪

limpaCampo() é uma função auxiliar, específica para limpar o campo de input. Ela é chamada dentro de outras funções, como verificarChute() e reiniciarJogo(), porque sua ação (limpar o campo) é necessária como parte da lógica dessas funções. Ela não precisa ser chamada diretamente fora de outras funções, pois sua ação é sempre dependente de um evento ou ação que a precede. 📝

exibirMensagemInicial() é uma função que define o estado inicial do jogo, exibindo as mensagens de boas-vindas. Ela pode ser chamada tanto dentro de outras funções (como reiniciarJogo()) quanto diretamente no código, fora de qualquer função, porque sua ação (exibir as mensagens) pode ser necessária em diferentes momentos do fluxo do jogo, como no início ou ao reiniciar. 💬

Em resumo, a diferença está na necessidade de cada função: limpaCampo() é uma ação auxiliar que faz parte de um processo maior, enquanto exibirMensagemInicial() é uma ação que pode ser necessária em diferentes pontos do código. 🤔

Para saber mais: Funções em JavaScript - Este link da documentação da Mozilla aborda o conceito de funções em JavaScript, como declará-las e como utilizá-las em diferentes contextos.

Continue explorando e aprofundando seus conhecimentos! 💫

Pensava que toda função tinha que ser chamada fora do escopo primeiramente, de forma obrigatoria