O código do exercício é o seguinte (se a condição for verdadeira, ele retorna uma função, no escopo desta função passamos a instrução que sobrescreve a função grita() e RETORNAMOS (return) Reflect.aplly(...). ou seja, damos um return de uma função que esta mesma possui outro return em Reflect.aplly(...)
get(target, prop, receiver) {
if(prop == 'grita' && typeof(target[prop]) == typeof(Function)) {
return function() {
console.log(`Método chamado: ${prop}`);
return Reflect.apply(target[prop], target, arguments);
}
}
return Reflect.get(target, prop, receiver);
}
});
Porém fiz da seguinte maneira (dentro da instrução da função não possui return antes de Reflect.aplly(...)) e me parece que funcionou normalmente:
get(target, prop, receiver) {
if(prop == 'grita' && typeof(target[prop]) == typeof(Function)) {
return function() {
console.log(`Método chamado: ${prop}`);
Reflect.apply(target[prop], target, arguments);
}
}
return Reflect.get(target, prop, receiver);
}
});
A questão aqui é: Preciso utilizar o return antes de Reflect.aplly ? Se sim, não ficou claro para mim o motivo.