⊗jsPmClCr 263 of 505 menu

'n Teller op Sluitings in JavaScript

Laat ons die kode wat ons bespreek het herskryf sodat die teruggekeerde funksie elke keer die waarde van die veranderlike num met een verhoog:

function test() { let num = 1; return function() { console.log(num); num++; // voeg een by } } let func = test();

Dit sal beteken dat elke oproep na die funksie func 'n nuwe waarde in die konsole sal vertoon:

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

Dit blyk dat ons 'n funksie-oproepteller geïmplementeer het deur van 'n sluiting gebruik te maak (om presies te wees, deur die veranderlike num van ons funksie se sluiting te gebruik).

Let op dat elke oproep na die funksie test 'n nuwe funksie sal teruggee, wat sy eie sluiting sal hê. Dit beteken verskillende tellers sal onafhanklik werk:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // eerste teller func1(); // sal 1 vertoon func1(); // sal 2 vertoon let func2 = test(); // tweede teller func2(); // sal 1 vertoon func2(); // sal 2 vertoon

Dit beteken dat dieselfde veranderlike num vir verskillende funksies verskillende waardes sal hê!

As ons dus die funksie test twee keer aanroep, sal die funksies wat daaruit verkry word, onafhanklik werk en elkeen van hierdie funksies sal sy eie onafhanklike veranderlike num hê.

Implementeer self, sonder om na my kode te kyk, 'n funksie-oproepteller wat op sluitings werk.

Laat die funksie in die sluiting die getal 10 stoor. Maak dit so dat elke oproep van die funksie hierdie getal met 1 verminder en die verminderde getal in die konsole vertoon.

Wysig die vorige taak sodat die aftelling tot by 0 gaan, en dan sal elke daaropvolgende oproep van die funksie 'n boodskap in die konsole vertoon dat die aftelling voltooi is.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp