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

Dúvidas sobre Proxy (set)

Olá,

Tenho algumas dúvidas sobre a aula 2, nessa parte do código:


class ProxyFactory{

    static create(objeto, props, acao) {

        return new Proxy(objeto, {

            get(target, prop, receiver) {

                if(props.includes(prop) && ProxyFactory._ehFuncao(target[prop])) {

                    return function() {

                        console.log(`a propriedade "${prop}" foi interceptada`);
                        Reflect.apply(target[prop], target, arguments);
                        return acao(target);
                    };
                }
                return Reflect.get(target, prop, receiver);       
           },

            set(target, prop, value, receiver) {
                if(props.includes(prop)) {
                    target[prop] = value;
                    acao(target);
                }
                return Reflect.set(target, prop, value, receiver);
            }
      });
    }
}

1) Na aula do instrutor, se o set estivesse somente assim, as mensagens não apareciam. Mas no meu funcionou normalmente. Qual o motivo?

            set(target, prop, value, receiver) {
                return Reflect.set(target, prop, value, receiver);
                acao(target);
            }

2) Qual a função dessa linha de código?

            set(target, prop, value, receiver) {
                if(props.includes(prop)) {
      ---------->   target[prop] = value;   <---------
                    acao(target);
                }
                return Reflect.set(target, prop, value, receiver);
            }

Desde já, obrigado!

2 respostas
solução!

Bom dia.

Sem isso a msg só aparecerá na segunda vez que você gravar.

Não entendi porque só aparecerá a mensagem na segunda vez em que for gravado. Poderia explicar melhor?