Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

197
Visualizações
¿Cómo sabe su nombre una función anónima?

Considere el siguiente código.

 const foo = () => {};
console.log(foo.name); // prints foo
const bar = foo;
console.log(bar.name); // prints foo again

Por favor, señale lo que está mal con mi razonamiento sobre la declaración const foo = () => {}; . La expresión () => {} se evalúa como un objeto de función anónimo y la declaración vincula el nombre foo a ese objeto. Seguramente el valor de la expresión () => {} no sabe que tiene el name foo , pero de alguna manera sabe que después de que foo está vinculado a él. Pero, ¿cómo sucedió eso? Supongo que = no altera el lado derecho y las líneas 3 y 4 se comportan como esperaba.

almost 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

De acuerdo con la especificación, cuando se evalúa una declaración de variable y el inicializador es una definición de función anónima, entonces esa definición se evalúa de una manera especial, pasando el nombre de la variable que se utilizará como nombre de función:

LexicalBinding : BindingIdentifier Inicializador
1. Deje que bindingId sea StringValue de BindingIdentifier .
2. ¡Que sea lhs ! ResolveBinding ( bindingId ).
3. Si IsAnonymousFunctionDefinition ( Inicializador ) es true , entonces
a. Sea el valor? NamedE Evaluation of Initializer con el argumento bindingId .
...

Algo similar sucede al evaluar una expresión de asignación.

almost 4 years ago · Santiago Trujillo Relatório

0

La línea 1 de su código técnicamente no es una función anónima, es una expresión de función "nombrada implícitamente" (o como también la llama el mdn, una "función sin nombre").

Desde el mdn:

La variable a la que se asigna la expresión de la función tendrá una propiedad de nombre. El nombre no cambia si se asigna a una variable diferente. Si se omite el nombre de la función, será el nombre de la variable (nombre implícito). Si el nombre de la función está presente, será el nombre de la función (nombre explícito). Esto también se aplica a las funciones de flecha (las flechas no tienen nombre, por lo que solo puede dar a la variable un nombre implícito).

Ver también: Función.nombre#función_expresión

almost 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda