⊗jsPmClCr 263 of 505 menu

Compteur avec des fermetures en JavaScript

Réécrivons le code que nous avons examiné de sorte que la fonction retournée augmente à chaque fois la valeur de la variable num de un :

function test() { let num = 1; return function() { console.log(num); num++; // on ajoute un } } let func = test();

Il en résulte que chaque appel de la fonction func affichera dans la console une nouvelle valeur :

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

Il s'avère que nous avons mis en œuvre un compteur d'appels de fonctions, en utilisant une fermeture (plus précisément en utilisant la variable num de la fermeture de notre fonction).

Notez que chaque appel de la fonction test retournera une nouvelle fonction, qui aura sa propre fermeture. Autrement dit, différents compteurs fonctionneront indépendamment :

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // premier compteur func1(); //affichera 1 func1(); //affichera 2 let func2 = test(); // deuxième compteur func2(); //affichera 1 func2(); //affichera 2

Il s'avère que la même variable num aura des valeurs différentes pour différentes fonctions !

Autrement dit, si nous appelons la fonction test deux fois, alors les fonctions obtenues fonctionneront de manière indépendante et chacune de ces fonctions aura sa propre variable indépendante num.

Indépendamment, sans regarder mon code, mettez en œuvre un compteur d'appels de fonction fonctionnant sur des fermetures.

Supposons que la fonction dans la fermeture stocke le nombre 10. Faites en sorte que chaque appel de la fonction réduise ce nombre de 1 et affiche dans la console le nombre réduit.

Modifiez la tâche précédente pour que le compte à rebours atteigne 0, puis que chaque appel suivant de la fonction affiche dans la console un message indiquant que le compte à rebours est terminé.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser