Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

202
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda