Jsou čítače nezávislé?
důležitost: 5
Zde vytvoříme dva čítače: čítač a čítač2 pomocí téže funkce vytvořČítač.
Jsou nezávislé? Co zobrazí druhý čítač? 0,1 nebo 2,3 nebo něco jiného?
function vytvořČítač() {
let počet = 0;
return function() {
return počet++;
};
}
let čítač = vytvořČítač();
let čítač2 = vytvořČítač();
alert( čítač() ); // 0
alert( čítač() ); // 1
alert( čítač2() ); // ?
alert( čítač2() ); // ?
Odpověď: 0,1.
Funkce čítač a čítač2 byly vytvořeny různými voláními funkce vytvořČítač.
Mají tedy nezávislá vnější lexikální prostředí, každé z nich má svůj vlastní počet.