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ópriothis; herdam othisdo contexto léxico circundante. As funções normais têm o seu própriothis, que depende de como são chamadas. - Ausência de
arguments: As funções arrow não têm o objetoarguments. 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`