counter via closure

by Vladymyr Shevchuk

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