Sobes.tech
Middle

Para que não se deve usar a palavra-chave 'this' em JavaScript?

sobes.tech IA

Resposta da IA

this não pode ser usado em funções de seta para vincular ao seu próprio contexto. Funções de seta não criam seu próprio this, mas herdam seu valor do âmbito em que foram definidas.

Além disso, this é pouco confiável em callbacks de operações assíncronas ou manipuladores de eventos sem ligação explícita de contexto (.bind(), .call(), .apply()), pois seu valor pode mudar ou tornar-se o objeto global (em modo não estrito) ou undefined (em modo estrito).

Exemplo:

function funcaoTradicional() {
  console.log(this); // this depende de como é chamado
}

const funcaoDeSeta = () => {
  console.log(this); // this herda do escopo externo
};

const obj = {
  metodo: funcaoTradicional
};

obj.metodo(); // this - obj
funcaoTradicional(); // this - objeto global (window / global)

const obj2 = {
  metodo: funcaoDeSeta
};

obj2.metodo(); // this - herdado. Se definido no escopo global, será global/window.