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

Retorno undefined

Mesmo fazendo das duas formas propostas pelo exercício ele retorna undefined

    <script>
        class Pessoa {
            constructor(nome) {
                this._nome = nome;
            }

            get nome() {
                return this._nome;
            }

            set nome(nome) {
                this._nome = nome;
            }

            grita(frase) {
                `${this._nome} grita ${frase}`;
            }
        }

        let pessoa = new Proxy(new Pessoa('Barney'), {
            get(target, prop, receiver) {
                if(prop == 'grita' && typeof(target[prop]) == typeof(Function)) {
                    return function() {
                        console.log(`Interceptei o método: ${prop}, por isso estou exibindo esta mensagem!`);
                        let retorno = Reflect.apply(target[prop], target, arguments);

                        console.log(`O valor retornado do método foi ${retorno}`);

                        return retorno;
                    }
                    return Reflect.get(target, prop, receiver);
                }
            }
        });

        console.log(pessoa.grita('Olá'));
    </script>
2 respostas
solução!

Está faltando o return do método 'grita' na classe Pessoa. Esse foi mais difícil de achar ^^"

Valeu Guilherme, mais uma vez.