1
resposta

Como funciona this em funções globais?

"Como setInterval é global e acessível em qualquer canto do nosso código, ele pertence ao objeto global window, logo seu this aponta para window"

As funções globais nunca apontam para o this de nossos objetos se não especificarmos certo?

Então o this de setInterval não tem contexto dinâmico ja que aponta para o objeto window a qual foi criado?

Ou seja para funções globais o arrow function esta mudando contexto original da onde elas foram criadas(global) para o contexto da instancia de Relógio?

class Relogio {

    constructor() {

        let self = this; // guardando o this que é a instância da classe `Relogio`
        this._segundos = 0;

        setInterval(function () {
            console.log(++self._segundos); // acessando a variável self, que é a instância de `Relogio` 
          }, 1000);

    }
}
1 resposta

Fala ai Felipe, tudo bem? Dá uma olhada nesse artigo do Lucas, ele explica muito bem sobre:

https://imasters.com.br/javascript/javascript-entendendo-o-de-uma-vez-por-todas

Espero ter ajudado.