Olá!
A forma como solucionei o exercício foi a seguinte:
let funcionario = {email: 'abc@abc.com'};
let funcionarioProxy = new Proxy( funcionario, {
get(target, prop, receiver) {
if( ['email'].includes(prop) ){
return `**${funcionario[prop]}**`;
}
console.log("Armadilha aqui");
return Reflect.get(target, prop, receiver);
}
});
console.log(funcionarioProxy.email);
console.log(funcionario.email);
Ao invés de utilizar:
return '**' + Reflect.get(target, prop, receiver) + '**' ;
Retornei como:
return `**${funcionario[prop]}**`;
Além disso, utilizei um if, para verificar se existia a propriedade "email" no objeto:
if( ['email'].includes(prop) )
A forma como solucionei também está correta?
Ainda não entendi como funciona o Reflect e o padrão de projeto Proxy. Estou bem confusa em quais situações utilizar o proxy. Entendi que o Proxy funciona como um "objeto mentiroso" que encapsula o objeto original, e que no caso do exercício do Aluraframe, utilizamos o proxy para escutar as ações do usuário, e ao escutar ele por debaixo dos panos faz um update do formulário para a lista, mas em quais outras situações poderíamos utilizar? E teria uma explicação mais clara sobre o proxy e reflect?
Obrigada!