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

Ordem de execução no exercício "Agora eu quero ver" - Aula 5

Olá, no último exercício da aula 5,"Agora eu quero ver!", o professor Flávio escreve um código com uma função retornando outra função. Consegui resolver o exercício, mas ficou uma dúvida, qual é a ordem de execução do código, em específico na função c? Sei que a regra de prioridade das operações lógicas é processar primeiro o que está dentro dos parênteses, e depois o que está fora. Mas na função c, o que é priorizado? A instrução return b e seu conteúdo, ou primeiro a chamada a(sobrenome) e só depois o return b? Talvez não haja importância no caso desse código pela sua simplicidade, mas acredito eu que, num código mais complexo, isso deve ter algum impacto no resultado final, estou certo?

<meta charset="UTF-8">

<script>
    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function a(texto) {

        return "(" + texto + ")";
    }

    function b(texto) {

        return "@" + texto + "@";
    }

    function c(nome, sobrenome) {

        return b(nome + " " + a(sobrenome));

    }

    var resultado = c("Flávio", "Almeida");

    mostra(resultado);

</script>
3 respostas

A ordem de execução na função c seria:

  • o método a (sobrenome) é invocado.
  • é concatenado o nome com o resultado do método a
  • o método b é invocado
  • é retornado o valor do método b

Isso pode ser observado utilizando o modo debug do eclipse, utilizando o f5 (step into), ele avança linha-a-linha do que é executado.

solução!

Davi,

Para o caso de chamadas de função a ordem é da que está na parte interna para a parte externa. No seu caso então primeiro é chamado a função a e depois a função b.

Em um outro exemplo, com duas funções dentro:

function c(nome, sobrenome) {
        return b(a(nome) + " " + a(sobrenome));
}

Seriam executadas as duas funções de dentro e depois a de fora.

Abraço.

** Desculpa a resposta repetida, enquanto estava digitando o outro colega respondeu :)

Poxa pessoal muito obrigado mesmo, tanto Luis quanto Silvio. Tiraram minhas duvidas completamente. Meu primeiro post aqui, obrigado pela resposta! Estou gostando demais da plataforma do alura!