Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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