Objekt čítače
důležitost: 5
Zde je vytvořen objekt čítače pomocí konstruktoru.
Bude to fungovat? Co se zobrazí?
function Čítač() {
let počet = 0;
this.zvyš = function() {
return ++počet;
};
this.sniž = function() {
return --počet;
};
}
let čítač = new Čítač();
alert( čítač.zvyš() ); // ?
alert( čítač.zvyš() ); // ?
alert( čítač.sniž() ); // ?
Jistě že to bude fungovat správně.
Obě vnořené funkce jsou vytvořeny uvnitř stejného vnějšího lexikálního prostředí, takže mají společný přístup ke stejné proměnné počet:
function Čítač() {
let počet = 0;
this.zvyš = function() {
return ++počet;
};
this.sniž = function() {
return --počet;
};
}
let čítač = new Čítač();
alert( čítač.zvyš() ); // 1
alert( čítač.zvyš() ); // 2
alert( čítač.sniž() ); // 1