Sobes.tech
Junior — Middle

Como difere o uso de funções de seta das funções padrão em JavaScript?

sobes.tech IA

Resposta da IA

As funções de seta em JavaScript diferem das funções padrão em vários aspetos-chave:

  • Contexto this: Nas funções de seta, this é herdado lexicalmente do contexto circundante, ou seja, não cria o seu próprio contexto this. Nas funções normais, this depende de como a função é chamada.

  • Ausência de arguments: As funções de seta não têm o seu próprio objeto arguments. Para aceder aos argumentos, deve-se usar parâmetros ou variáveis externas.

  • Não podem ser usadas como construtores: As funções de seta não podem ser chamadas com new, pois não têm o método interno [[Construct]].

  • Sintaxe mais curta: As funções de seta são geralmente mais curtas e convenientes para escrever funções curtas.

Exemplo:

const obj = {
  value: 10,
  regularFunc: function() {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // indefinido ou valor do contexto externo
  }
};

obj.regularFunc(); // irá mostrar 10
obj.arrowFunc();   // irá mostrar undefined

Assim, a escolha entre uma função de seta e uma função normal depende da necessidade de gerir o contexto e das características do uso.