2
respostas

Usando arrow function

Fiquei com essa dúvida, com o cóodigo a seguir funciona normalmente

pacientes.forEach(paciente => {
    paciente.addEventListener("dblclick", function() {
        this.remove();
    });
});

porém se eu colocar assim não funciona :

pacientes.forEach(paciente => {
    paciente.addEventListener("dblclick",  () =>  {
        this.remove();
    });
});

É como se ele parasse de reconhecer a função remove(). Pq isso ocorre?

2 respostas

Oi Arthur,

Então isso acontece porque a arrow function tem um escopo léxico, ou seja, o "this" dentro dela muda de acordo com o escopo que ela é chamada. Já a function comum não muda o "this" ele é fixo.

Nesse artigo do medium tem exemplos dessa diferença https://medium.com/frontend-quest/arrow-functions-vs-functions-9048ec12b5c6

Espero ter ajudado :)

Matou a pau, Matheus! Valeu

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software