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

Qual é a função do receiver?

Fiz um teste returnando o resultado apenas com os parâmetros 'target' e 'prop', como no código abaixo, e o resultado foi que só as propriedade negociacao.valor e negociacao.quantidade foram interceptadas. Qual seria mais especificamento o papel da propriedade receiver?

<script>
        let negociacao = new Proxy(new Negociacao(new Date(), 100, 100), {
            get: function(target, prop, receiver){
                console.log(`A propriedade "${prop}" foi interpectada`);
                return Reflect.get(target, prop)


            }
        });

        console.log(negociacao.quantidade);
        console.log(negociacao.valor);


    </script>
1 resposta
solução!

Fala aí Wesley, tudo bem? O receiver é o objeto do Proxy ou um outro que está herdando desse Proxy.

Basicamente podemos usá-lo quando o get atual do Proxy depende de outros valores do objeto, por exemplo:

const person = { name: 'Matheus', age: 24 }

const pesonProxy = new Proxy(person, {
    get(target, prop, receiver) {
        if (prop === 'name') {
            const name = target[prop]
            if (receiver.age > 18) {
                console.log('Sou maior de idade')
                return `${name} => Maior de idade`
            }
            console.log('Estou no proxy')
            return name
        }
        return Reflect.get(target, prop, receiver)
    }
})

console.log(pesonProxy.name)
console.log(pesonProxy.age)

Repare que eu criei um proxy para o objeto person.

Quando ele for pegar o valor do nome, vai verificar se é maior de idade, caso seja, vai concatenar o nome com => Maior de idade, senão, retorna apenas o nome.

Espero ter ajudado.