1
resposta

Não estou conseguindo separar minha funções em mais de um arquivo :0

Olá, Boa noite!

Conforme as aulas do curso o instrutor explica como refatorar o código já feito, o quebra em várias partes para facilitar a manutenção do mesmo e outras n vantagens, porém quando eu fiz o meu próprio código não está funcionando :( Poderiam me ajudar ?

Segue o código completo do js:

var botao = document.querySelector(".botao");

        //Evento atrelado ao botão de calcular que executará um bloco de instruções a medida que for submetido.
        botao.addEventListener("click", function(event){
            event.preventDefault();

        var form = document.querySelector(".formulario");
        var mensagem = document.querySelector(".mensagem");

        var usuario = ObtemDadosDoUsuario(form);

        //Recebendo os valores das função mediante ao seu retorno.
        var resultado = calculaImc(peso,altura);
        var msg = verificaImc(resultado);


        //Função que obtem os dados digitados pelo usuário//
        function ObtemDadosDoUsuario(form){
            //Criando um objeto usuário//
            var usuario = {
                nome: form.nome.value,
                peso: form.peso.value,
                altura: form.altura.value,
                sexo: form.sexo.value
            }

            return usuario;

        }

        //Função que realiza o calculo de imc//
        function calculaImc(peso, altura){
            var imc = 0;
            imc = usuario.peso / (usuario.altura * usuario.altura);
            return imc.toFixed(2);
        }

        //Função que verifica se o imc está de acordo com as normas do ministério da saúde//
        function verificaImc(resultado){

            if(resultado >= 18 && resultado <= 35){
                mensagem.classList.add("resposta-imc-excelente");
                mensagem.textContent = (usuario.nome + " Seu imc é "  + resultado+ " e está excelente");
            }
            if(resultado < 18){
                mensagem.classList.add("resposta-imc-baixo");
                mensagem.textContent = (usuario.nome + " Atenção! Seu Imc é " + resultado + " e está muito abaixo da média " );
            }
            if(resultado > 35){
                mensagem.classList.add("resposta-imc-acima");
                mensagem.textContent = (usuario.nome + " Atenção! Seu Imc é " + resultado + " e está muito acima da média, não deixe de praticar atividades fisicas.");
            }
            return resultado;
        }
        //Limpando os campos do formulário com a função reset()//
            form.reset();

        });

E aqui segue o código que eu separei, esse é refente ao formulario:

var botao = document.querySelector(".botao");

        //Evento atrelado ao botão de calcular que executará um bloco de instruções a medida que for submetido.
        botao.addEventListener("click", function(event){
            event.preventDefault();

        var form = document.querySelector(".formulario");
        var mensagem = document.querySelector(".mensagem");

        var usuario = ObtemDadosDoUsuario(form);

        //Recebendo os valores das função mediante ao seu retorno.
        var resultado = calculaImc(peso,altura);
        var msg = verificaImc(resultado);


        //Função que obtem os dados digitados pelo usuário//
        function ObtemDadosDoUsuario(form){
            //Criando um objeto usuário//
            var usuario = {
                nome: form.nome.value,
                peso: form.peso.value,
                altura: form.altura.value,
                sexo: form.sexo.value
            }

            return usuario;

        }

        //Limpando os campos do formulário com a função reset()//
            form.reset();

        });

E esse é referente ao arquivo de calculo do imc:


        //Função que realiza o calculo de imc//
        function calculaImc(peso, altura){
            var imc = 0;
            imc = usuario.peso / (usuario.altura * usuario.altura);
            return imc.toFixed(2);
        }

        //Função que verifica se o imc está de acordo com as normas do ministério da saúde//
        function verificaImc(resultado){

            if(resultado >= 18 && resultado <= 35){
                mensagem.classList.add("resposta-imc-excelente");
                mensagem.textContent = (usuario.nome + " Seu imc é "  + resultado+ " e está excelente");
            }
            if(resultado < 18){
                mensagem.classList.add("resposta-imc-baixo");
                mensagem.textContent = (usuario.nome + " Atenção! Seu Imc é " + resultado + " e está muito abaixo da média " );
            }
            if(resultado > 35){
                mensagem.classList.add("resposta-imc-acima");
                mensagem.textContent = (usuario.nome + " Atenção! Seu Imc é " + resultado + " e está muito acima da média, não deixe de praticar atividades fisicas.");
            }
            return resultado;
        }
1 resposta

Se você quiser ter acesso a outro arquivo javascript você tem que dizer para o browser que esse arquivo é global na sua aplicação então você vai conseguir chamá-lo de outro arquivo tranquilamente. segue um ex:

//Primeiro o arquivo que você vai precisar
<script src="js/caminho-do-arquivo/imc.js"></script>
// E agora o seu que já estava implementado
<script src="js/caminho-d- arquivo/form.js"></script>

</body>

Não se esqueça de declara-lo sempre ao fim do body.

espero ter ajudado.