Questions
11.1. Decorating methods, the future way. In Chapter 6, Producing Functions - Higher-Order Functions, we wrote a decorator to enable logging for any function. Currently, method decorators are being considered for upcoming versions of JavaScript: refer tosavedMethod variable? Why do we use function() when assigningnew descriptor.value, instead of an arrow function? Can you understand why .bind() is used? What is descriptor?
const logging = (target, name, descriptor) => {
const savedMethod = descriptor.value;
descriptor.value = function(...args) {
console.log(`entering ${name}: ${args}`);
try {
const valueToReturn = savedMethod.bind(this)(...args);
...