Olá,
tive algumas duvidas na explicação deste código:
get(target, prop, receiver) {
if(['adiciona', 'esvazia'].includes(prop) && typeof(target[prop]) == typeof(Function)) {
return function() {
console.log(`a propriedade "${prop}" foi interceptada`);
Reflect.apply(target[prop], target, arguments);
}
}
return Reflect.get(target, prop, receiver);
}
1 - Não entendi por que não pode ser uma arrow function na função retornada. Faria diferença se o escopo de "this" fosse diferente?
2 - "arguments" não deveria fazer referencia ao argumentos de "get" ao invés de "adiciona"?