1
resposta

Proxy set funcionando com lista.adiciona

Senhores, bom dia.

Acompanhando o vídeo 06 da aula 02 (Método que não altera propriedade), no meu caso, não deu o mesmo erro (Uncaught TypeError: Cannot read property 'negociacoes' of undefined) e o objeto da classe Negociacao foi adicionado normalmente.

    <script>
        let lista = new Proxy(new ListaNegociacoes(), {
            set: function(target, prop, value, receiver) {
                console.log(`${prop} mudou de ${target[prop]} para ${value}`);
                return Reflect.set(target, prop, value, receiver);
            }
        });
        lista.adiciona(new Negociacao(new Date(), 5, 264));
    </script>

Na classe ListaNegociacoes, coloquei um console.log no método adiciona pra ver se tava tudo certo:

class ListaNegociacoes {
...
    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        console.log(this);
        console.log(negociacao);
    }

Ao executar, os objetos foram exibidos no console sem maiores problemas. Poderia ser modificação do próprio browser (chrome) com suporte a essa "feature"?

Proxy {_negociacoes: Array(1)}
[[Handler]]:Object
[[Target]]:ListaNegociacoes
[[IsRevoked]]:false

Negociacao {_data: Sat Feb 03 2018 10:03:01 GMT-0200 (-02), _quantidade: 5, _valor: 264, _id: "0.760"}
1 resposta

Se não houve erro é bem provável que tenha mudado algo. As coisas no mundo JavaScript evoluem com uma velocidade impressionante.

Obrigado por nos avisar!