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.