⊗jsPmClCNG 265 of 505 menu

Variable global contadora en JavaScript

Saquemos la variable num de las funciones, haciéndola así global:

let num = 1; // variable global function test() { return function() { console.log(num); num++; }; }

En este caso, todas las funciones devueltas modificarán esta variable global y los contadores trabajarán de manera dependiente entre sí:

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

¿Por qué nuestro código anterior creaba contadores independientes? Permítanme recordarles ese código:

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

El caso es que la variable num es local dentro de la función test. Por lo tanto, cada llamada a test genera su propia variable local.

Por lo tanto, las funciones devueltas harán referencia cada una a su propia variable local de la función test. Así es exactamente como se logra la independencia en el funcionamiento.

Si se hace que num sea una variable global, también será un cierre. Simplemente los entornos léxicos de las funciones devueltas hacen referencia a la misma variable num - cualquier cambio en esta variable será visible en todas las funciones.

Determine, sin ejecutar el código, qué se mostrará en la consola:

let counter = 0; function test() { return function() { console.log(counter); counter++; }; } let func = test; let func1 = func(); let func2 = func(); func1(); func2(); func1(); func2();

Determine, sin ejecutar el código, qué se mostrará en la consola:

function test() { let counter = 0; return function() { return function() { console.log(counter); counter++; }; }; } let func = test()(); let func1 = func; let func2 = func; func1(); func2(); func1(); func2();

Determine, sin ejecutar el código, qué se mostrará en la consola:

function test() { let counter = 0; return function() { return function() { console.log(counter); counter++; }; }; } let func = test(); let func1 = func(); let func2 = func(); func1(); func2(); func1(); func2();
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