Na aula você diz que a ordem é de cima para baixo, e no exercicio de baixo para cima, qual é o correto afinal?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Na aula você diz que a ordem é de cima para baixo, e no exercicio de baixo para cima, qual é o correto afinal?
Olá, Victor!
Na verdade, a ordem de execução dos decorators é sempre de cima para baixo. No exemplo que você mencionou, o @inspect() é o primeiro decorator a ser executado, seguido pelo @logarTempoDeExecução(true). Porém, é importante lembrar que a ordem de aplicação dos decorators na classe pode ser diferente da ordem de execução.
No caso específico do exercício, pode ser que o @logarTempoDeExecução(true) tenha sido aplicado antes do @inspect(), mas na hora da execução, o @inspect() é o primeiro a ser chamado. Isso acontece porque o JavaScript primeiro aplica o último decorator, substituindo o método original, e depois aplica os decorators anteriores.
Por exemplo, se tivermos um método update() decorado com @logarTempoDeExecução(true) e @inspect(), o JavaScript primeiro substituirá o método original com o @logarTempoDeExecução(true), e em seguida, decorará esse método com o @inspect(). Portanto, na hora da execução, o @inspect() será o primeiro a ser chamado.
Espero que isso tenha esclarecido sua dúvida. Se tiver mais alguma pergunta, é só me dizer! Espero ter ajudado e bons estudos!