# Escopo this na function e arrow function

**URL:** https://forum.casadocodigo.com.br/t/escopo-this-na-function-e-arrow-function/1332
**Category:** Livros
**Tags:** cangaceiro-js
**Created:** [Fevereiro 26, 2019, 10:51am UTC](https://forum.casadocodigo.com.br/t/escopo-this-na-function-e-arrow-function/1332 "2019-02-26T10:51:17Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![tbsoaresvalkms](https://avatars.discourse-cdn.com/v4/letter/t/f14d63/32.png) [@tbsoaresvalkms](https://forum.casadocodigo.com.br/u/tbsoaresvalkms)
#### Post date: [Fevereiro 26, 2019, 10:51am UTC](https://forum.casadocodigo.com.br/t/escopo-this-na-function-e-arrow-function/1332/1 "2019-02-26T10:51:17Z")

</div>

Em um certo momento do livro, foi falado que utilizando o this dentro da function, o javascript considera o objeto atual que o this esta sendo chamado (se passar a function como parametro para esse qualquer objeto, esse novo objeto sera a referencia do this). Porem, no arrow function eh diferente, pois utiliza o escopo léxico, sendo assim o this fazera referencia ao objeto que declarou a funcao. Ate esse ponto eu entendi e testei, tudo ok.  
Minha duvida esta na pagina 208 do livro, onde esta sendo declado uma trap (get) no handler de um proxy.

> ```
> if(typeof(target[prop]) == typeof(Function) && ['adiciona', 'esvazia'].includes(prop)) {
> return function() {
> target[prop].apply(target, arguments);
> this._negociacoesView.update(target);
> }
> }
> 
> ```

Esse codigo nao funcionara, pq o this ira fazer referencia para o proxy, porem se eu troco por arrow function tambem nao funciona. No livro tem uma citacao sobre isso, porem nao conseguir entender.

> se tivéssemos usado arrow function,resolveríamos esse problema, mas precisamos que o this da  
> função seja dinâmico; caso contrário, nossa solução não  
> funcionará.

---

<div class="post-metadata">

### Author: ![fuentesbr](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/fuentesbr/32/14716_2.png) [@fuentesbr](https://forum.casadocodigo.com.br/u/fuentesbr)
#### Post date: [Janeiro 19, 2021, 7:30pm UTC](https://forum.casadocodigo.com.br/t/escopo-this-na-function-e-arrow-function/1332/2 "2021-01-19T19:30:08Z")

</div>

Cara, fora desse escopo ele colocou const self = this;, e vc precisa trocar igual abaixo:

this.\_negociacoesView.update(target);

POR

self.\_negociacoesView.update(target);
