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!