⊗jsPmFCCl 274 of 505 menu

Closure och omedelbar funktionsanvändning i JavaScript

Som du redan vet är det möjligt att anropa en anonym funktion omedelbart och tilldela resultatet av operationen till någon variabel:

let result = function() { return '!'; }(); console.log(result); // skriver ut '!'

Ofta sätts funktionen som anropas omedelbart i sådana fall inom parenteser, även om det inte är nödvändigt. Detta görs för att det genast ska vara synligt att funktionen anropas omedelbart:

let result = (function() { return '!'; })(); console.log(result); // skriver ut '!'

Låt nu resultatet av den omedelbart anropade funktionen vara en anonym funktion:

let func = (function() { return function() { console.log('!'); } })(); func(); // skriver ut '!'

Låt oss göra så att den returnerade funktionen lagrar variabeln num i ett closure:

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

Om man lägger till num++, så blir funktionen func en färdig räknare:

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

Utan att kolla på min kod, implementera en sådan räknare på egen hand.

Modifiera räknarens funktion så att den räknar till 5, och sedan börjar omräkningen om från början.

uzcbnuzlrunl