Para testar o proxy e sacramentar se realmente entendi os conceitos dados pelo professor eu resolvi brincar com o proxy e fiz o seguinte código
let funcProxy = new Proxy(new Funcionario('abc@abc.com'),{
get(target,prop,receiver){
console.log(`Armadilha plantada ${prop}`);
return `*${Reflect.get(target,prop,receiver)}*`;
}
})
console.log(funcProxy.email);
E a resposta no console foi
Armadilha plantada email
Armadilha plantada _email
**abc@abc.com**
As duas primeiras ok, era o esperado mas pq a segunda parte teve dois asteriscos no começo e no final? E se eu retornar no handler do proxy algo como return
qsq${Reflect.get(target,prop,require)}frg;
nós teremos no console
*qsq*qsqabc@abc.comfrg*frg*
Ou seja ele duplica no começo e no final entre o reflect.get, porem com target[prop] não rola isso, pq?