Em relação ao exercício, resolvi da seguinte maneira:
let funcionario = {email: 'abc@abc.com'};
let proxy = new Proxy(funcionario, {
set(target, prop, value, receiver) {
console.log(`Valor anterior era ${target.email}`);
console.log(`Novo valor é ${value}`);
}
})
proxy.email = 'joão@joão.com'
Rodando no console do navegador, o resultado corresponde com o esperado, porém na resolução original do exercício, está da seguinte forma:
let funcionario = {email: 'abc@abc.com'};
let funcionarioProxy = new Proxy(funcionario, {
set(target, prop, value, receiver) {
console.log(`Valor antigo ${target[prop]}, valor atual: ${value}`);
return Reflect.set(target, prop, value, receiver);
}
});
funcionarioProxy.email = 'aaa@aaa.com';
Não utilizei return Reflect.set(target, prop, value, receiver); muito menos chamei a propriedade do jeito target[prop]. O que poderia ser?