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.