counter via closure
JavaScript
const counter = (() => {
let value = 0;
return n => {
if (n) value = n;
return value++;
};
})();
console.log(counter()); // 0
console.log(counter()); // 2
console.log(counter()); // 3
console.log(counter(12)); // 12
console.log(counter()); // 13
console.log(counter()); // 14