"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);
}
}