Sobes.tech
Junior

Qual é a diferença entre duas formas de definir uma função?

sobes.tech IA

Resposta da IA

A principal diferença é o contexto de this.

Forma de definir uma função Diferença
declaração de função O contexto de this é determinado por como a função foi chamada. É elevado antes da execução do código (hoisting).
função seta O contexto de this herda do contexto circundante (lexical). Não é elevado (sem hoisting).
// declaração de função
function funcaoRegular() {
  console.log(this); // `this` depende da chamada
}

// função seta
const funcaoSeta = () => {
  console.log(this); // `this` é herdado do contexto onde a função é definida
};

Funções seta também não têm seu próprio objeto arguments (ele é herdado do contexto externo) e não podem ser usadas como construtores com o operador new.