Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Necessidade do "Reflect.apply" no exercício

Código do exercício:

class Pessoa {

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

    get nome() {
        return this._nome;
    }

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

    grita(frase) {
        return `${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 exbindo essa mensagem!`);    
                    Reflect.apply(target[prop], target, arguments);       
                }
            }
            return Reflect.get(target, prop, receiver);
        }
    });

   console.log(pessoa.grita('Olá'));

Gostaria de perguntar: Se o Reflect.apply, serve para evocar uma função/método de acordo com o contexto passado. E o Reflect.apply nesse caso, está invocando o método grita, com o contexto dele mesmo.

Se objetivo do código nesse caso é interceptar o método grita com uma outra função, ou seja, sobrescrevendo o método original, porque a presença do Reflect.applyno código?

1 resposta
solução!
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!