makeCounter Object
clogure, function + methods
by Denni Adam
HTML
<div id='wrapper'></div>
CSS
.even, .odd {
min-height: 20px;
padding: 5px;
margin: 5px 0;
}
.even {
color: blue;
border: 1px dashed blue;
background-color: #eef;
}
.odd {
color: red;
border: 1px dashed red;
background-color: #fee;
}
JavaScript
function cLog() {
var divNum = 0;
return function (msg) {
divNum++;
var divId = 'd' + divNum;
var divClass = (divNum % 2 == 0) ? 'even' : 'odd';
var e = document.createElement('div');
e.setAttribute('class', divClass);
e.setAttribute('id', divId);
document.getElementById('wrapper').appendChild(e);
document.getElementById(divId).textContent = msg;
return divNum;
};
}
function makeCounter() {
var currentCount = 0;
function counter() {
return ++currentCount;
}
counter.set = function(value) {
currentCount = value;
return currentCount;
};
counter.reset = function () {
currentCount = 0;
return currentCount;
};
return counter;
}
var counter = makeCounter();
var _print = cLog();
_print(counter());
_print(counter());
_print(counter.set(15));
_print(counter());
_print(counter.reset());
_print(counter());
_print(counter());