⊗jsPmClCNL 264 of 505 menu

Lokaali laskurimuuttuja JavaScriptissä

Tarkastellaan seuraavaa koodia:

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

Miksi aina tulostuu numero 1? Jotta ymmärtäisimme tämän, kirjoitetaan koodimme uudelleen toisella tavalla:

function test() { let num = 1; return function() { console.log(num); num++; }; }; let func1 = test(); //!! ensimmäinen funktio func1(); //tulostaa 1 let func2 = test(); //!! toinen funktio func2(); //tulostaa 1

Eli jokainen funktion test kutsu tällä tavalla: test()(), luo oman funktionsa omalla sulkeumallaan ja kutsuu kyseistä funktiota välittömästi.

Päätä, käyttämättä koodia, mitä tulostetaan konsoliin:

function func() { let num = 0; return function() { console.log(num); num++; }; } func()(); func()(); func()();

Päätä, käyttämättä koodia, mitä tulostetaan konsoliin:

function func() { let num = 0; return function() { console.log(num); num++; }; } let test = func; test()(); test()(); test()();
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää