⊗jsPmFTNFE 235 of 505 menu

Expresiones de función nombradas en JavaScript

Supongamos que tenemos una expresión de función como esta:

let test = function() { console.log('!'); }; test(); // mostrará '!'

Démosle a nuestra función el nombre func:

let test = function func() { console.log('!'); }; test();

Como ya sabes, no se puede acceder a la función por este nombre:

let test = function func() { console.log('!'); }; test(); // mostrará '!' func(); // dará un error

¿Por qué darle un nombre a la función si no estará disponible? El caso es que este nombre no estará disponible fuera de la función, pero sí está disponible dentro de ella.

Comprobemos:

let test = function func() { console.log(func); // la función mostrará su propio código fuente }; test(); // llamamos a la función

Llamemos a nuestra función dentro de sí misma:

let test = function func() { console.log('!'); // mostramos '!' func(); // nos llamamos a nosotros mismos }; test();

Si ejecutas este código, se mostrará en la consola una cantidad infinita de mensajes.

En realidad, nuestra función puede ser llamada dentro de sí misma no solo como func, sino también como test:

let test = function func() { console.log('!'); test(); // nos llamamos a nosotros mismos }; test();

¿Cuál es la diferencia? La diferencia es que el nombre test es simplemente una variable. Durante la ejecución del script, nuestra función puede asignarse a otra variable o pasarse como parámetro - en este caso, la conexión entre la variable test y la función puede perderse.

El nombre func, en cambio, está vinculado directamente a la función específicamente para que se pueda acceder a nuestra función dentro de sí misma.

Este tipo de Function Expression con nombre de función se denominan expresiones de función nombradas.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar