Estava fazendo os exercícios e comecei a inventar, tracei como objetivo colocar um tempo na apresentação da mensagem. Usando manipulação de css.
_apresentarMessagem() {
this._element.classList.remove("messagem-invisivel");
setTimeout(() => {
this._element.classList.add("messagem-invisivel");
}, 2500);
}
Fiz assim porém a primeira parte do codigo funciona mas o setTimeout não.
Obs:
1 - this._element referencia um atributo da classe mãe da classe;
2 - Quando colocado um console.log(this._element) dentro de setTimeout no atributo é tido como undefined e como se ele perdesse a referencia do atributo;
3- Atribuir this._element a uma variavel com declaração var e executar os comando nesta o código funciona perfeitamente;
_apresentarMessagem() {
var a = this._element;
a.classList.remove("messagem-invisivel");
setTimeout(() => {
a.classList.add("messagem-invisivel");
}, 2500);
}
Queria saber o motivo desse fato.