1
resposta

Arrow Function com prototype

Boa Noite

Durante a aula o instrutor declarou uma nova function no prototype da seguinte maneira

ClientePoupanca.prototype.depositarPoup = function(valor) { this.saldoPoup += valor; }

Porque isso não funciona em formato arrow function ?

ClientePoupanca.prototype.depositarPoup = valor => this.saldoPoup += valor;

1 resposta

Boa tarde Carlos, tudo certo?

Você trouxe uma ótima indagação! Realmente, parece que esse comportamento deveria ser o mesmo independente da forma que a função é criada, mas isso não acontece.

Isso acontece, pois as arrow functions não criam um this associado ao objeto que você está chamando. Sendo assim, precisamos utilizar a escrita das adições ao prototype como funções anônimas para ter o comportamento que queremos.

Esse comportamento é mencionado em uma atividade de um curso anterior e realmente pode causar uma certa confusão. Tem um tópico em inglês com uma discussão extendida caso tenha interesse.

Espero ter ajudado e bons estudos!