Alguém pode me explicar com um pouco mais de detalhes por que arrow function não daria certo?
Alguém pode me explicar com um pouco mais de detalhes por que arrow function não daria certo?
O grande ponto dessa questão é o this utilizado dentro da função:
const metodoOriginal = descriptor.value;
descriptor.value = function (...args: any) {
const retorno = metodoOriginal.apply(this, args);
return retorno;
}
O this é utilizado quando queremos utilizar algum contexto dinâmico nas nossas funções. Por exemplo, quando chamamos this.name dentro de um método de uma classe estamos informando que queremos utilizar o contexto da instância que o chamou. Contexto esse que é diferente para cada instância, pois os valores de suas propriedades são diferentes.
E as arrow functions não possuem this. Ou seja, o contexto da função é estático.