⊗jsPmClCr 263 of 505 menu

Tellermed lukking i JavaScript

La oss omskrive koden vi har sett på så den returnerte funksjonen hver gang øker verdien av variabelen num med én:

function test() { let num = 1; return function() { console.log(num); num++; // legger til én } } let func = test();

Det vil si at hvert kall til funksjonen func vil skrive en ny verdi til konsollen:

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

Det viser seg at vi implementerte en funksjonskallteller ved å bruke lukking (mer presist ved å bruke variabelen num fra lukkingen til funksjonen vår).

Vær oppmerksom på at hvert kall til funksjonen test vil returnere en ny funksjon, som vil ha sin egen lukking. Det vil si at forskjellige tellere vil fungere uavhengig:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // første teller func1(); //skriver ut 1 func1(); //skriver ut 2 let func2 = test(); // andre teller func2(); //skriver ut 1 func2(); //skriver ut 2

Det viser seg at den samme variabelen num for forskjellige funksjoner vil ha forskjellige verdier!

Det vil si at hvis vi kaller funksjonen test to ganger, vil funksjonene hentet fra den fungere uavhengig og hver av disse funksjonene vil ha sin egen uavhengige variabel num.

Implementer selv, uten å se på koden min, en funksjonskallteller som fungerer med lukking.

La funksjonen i lukkingen lagre tallet 10. Gjør slik at hvert funksjonskall reduserer dette tallet med 1 og skriver det reduserte tallet til konsollen.

Modifiser den forrige oppgaven slik at nedtellingen når 0, og deretter hvert påfølgende funksjonskall skriver en melding til konsollen om at nedtellingen er avsluttet.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis