Solucionado (ver solução)

Importante

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!

Solucionado
(ver solução)
1
resposta

Target ou Reflect

No lugar de target eu não poderia usar o receiver, pois depois de incluido no proxy ele refenrencia para o objeto original?

Realizei ums testes e todo valor que atribuo somente ao proxy é atribuido tbm ao objeto original que esta atrás da camada proxy. Isso é verdadeiro ou somente alguma coisa do código que estamos escrevendo.

let handler = {
            get: function (target, prop, receiver) {
                if(['adiciona', 'esvazia'].includes(prop) && typeof(target[prop]).toString() == typeof(Function).toString()){

                    return function(){

                        console.log(`interseptando ${prop}`)
                        Reflect.apply(target[prop], target, arguments)

                    }
                }

                return Reflect.get(target,prop,receiver);
            }
        }
1 resposta
solução!

Fala ai Paulo, tudo bem? Vamos lá:

No lugar de target eu não poderia usar o receiver, pois depois de incluido no proxy ele refenrencia para o objeto original?

Na verdade o receiver é o seu Proxy se você trocar o target (objeto alvo) por ele, o JavaScript vai ficar em um loop infinito, estourando o Call Stack.

Isso porque ele vai chamar o get do Proxy infinitamente.

Realizei ums testes e todo valor que atribuo somente ao proxy é atribuido tbm ao objeto original que esta atrás da camada proxy. Isso é verdadeiro ou somente alguma coisa do código que estamos escrevendo.

Quando você altera o Proxy ele também vai alterar o objeto original (caso o set do Proxy esteja fazendo isso).

Ele seria apenas uma camada acima do seu objeto.

Espero ter ajudado.