Javascript llamado función como una expresión
Código Javascript
<code>var d = function c() { console.log(c); }; d(); // function c() { console.log(c); }; c(); // Reference Error </code>
Entiendo el concepto de elevación de variables donde las declaraciones de variables y las definiciones de funciones se elevan a la parte superior del alcance existente. Además, la definición de funciones en expresiones de funciones no se eleva.
Entonces, arriba estará
<code>var d; d = function c() { console.log(c); }; d(); c(); </code>
Por lo tanto, d es una referencia a una función nombrada c
en la ejecuciónd()
la función c se ejecuta en el ámbito global, donde no hay ninguna variable o propiedad llamada c. Pero todavía la consola se las arregla para registrar la definición de la función de c.Cuando lo intentec()
Tengo un error de referencia. [Como yo esperaba]El caso 2 demuestra que no hay ninguna propiedad de ventana llamada c. Entonces, ¿cómo?d()
¿Se las arregla para imprimir la definición de la c en ejecución?
¿Cada función tiene su propia definición en su ámbito local como propiedad?