⊗jsPmClCr 263 of 505 menu

Contador con cierres en JavaScript

Reescribamos el código que hemos visto para que la función devuelta incremente el valor de la variable num en uno cada vez:

function test() { let num = 1; return function() { console.log(num); num++; // sumamos uno } } let func = test();

Resulta que cada llamada a la función func mostrará en la consola un nuevo valor:

function test() { let num = 1; return function() { console.log(num); num++; } } let func = test(); func(); //mostrará 1 func(); //mostrará 2 func(); //mostrará 3 func(); //mostrará 4 func(); //mostrará 5

Resulta que hemos implementado un contador de llamadas a funciones, usando un cierre (más precisamente, usando la variable num del cierre de nuestra función).

Tenga en cuenta que cada llamada a la función test devolverá una nueva función, que tendrá su propio cierre. Es decir, diferentes contadores funcionarán de forma independiente:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // primer contador func1(); //mostrará 1 func1(); //mostrará 2 let func2 = test(); // segundo contador func2(); //mostrará 1 func2(); //mostrará 2

¡Resulta que la misma variable num tendrá valores diferentes para diferentes funciones!

Es decir, si llamamos a la función test dos veces, entonces las funciones obtenidas de ella funcionarán de forma independiente y cada una de estas funciones tendrá su propia variable independiente num.

Por su cuenta, sin mirar mi código, implemente un contador de llamadas a funciones que funcione con cierres.

Que la función en el cierre almacene el número 10. Haga que cada llamada a la función reduzca este número en 1 y muestre en la consola el número reducido.

Modifique la tarea anterior para que la cuenta regresiva llegue a 0, y luego cada llamada posterior a la función muestre en la consola un mensaje indicando que la cuenta regresiva ha terminado.

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