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

Retorno do método original

Fiquei com dúvida na parte do retorno do método original, ele é salvo na constante retorno e é chamado do jeito que está no trecho abaixo.

descriptor.value = function() {
    const t1 = performance.now();
    const retorno = metodoOriginal();
    const t2 = performance.now();
    console.log(`${propertyKey}, tempo de execução: ${(t2 - t1)/1000} segundos`);
    retorno
};

Achei que deveria ser "return retorno;", não sei se é algum atalho ou se eu perdi parte da explicação.

Agradeço desde já.

2 respostas
solução!

Bom dia Jorge, você está correto. O fato de não haver um comando return faz com que a função retorne o valor undefined.

Ele não quis retornar nenhuma valor já que estava interessado em demonstrar como receber uma quantidade variável de parâmetros para adaptar o decorator a qualquer contexto e também porque os método onde ele foi utilizado não retornavam qualquer valor (void).

Caso fosse necessário teríamos que fazer uso do return para tratar os retornos das funções (basta ver o decorator @escape, por exemplo).

Entendi! Muito obrigado pela resposta.