Sobes.tech
Middle

Qual é a diferença entre uma função seta e uma função nomeada normal?

sobes.tech IA

Resposta da IA

As funções arrow em JavaScript diferem das funções nomeadas normais em vários aspetos-chave:

  • Contexto this: As funções arrow não têm o seu próprio this; herdam o this do contexto léxico circundante. As funções normais têm o seu próprio this, que depende de como são chamadas.
  • Ausência de arguments: As funções arrow não têm o objeto arguments. Para aceder aos argumentos, deve-se usar parâmetros ou parâmetros rest.
  • Não podem ser usadas como construtores: As funções arrow não podem ser chamadas com new.
  • Sintaxe: As funções arrow são mais curtas e convenientes para escrever funções curtas.

Exemplo:

const obj = {
  value: 42,
  regularFunc: function() { return this.value; },
  arrowFunc: () => this.value
};

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, pois `this` não aponta para `obj`