class vs factory : Counter Factory

by Cristi Salcescu

JavaScript

function Counter(){
    var state = 0;
    function increment(){
      state += 1;
      return state;
    }
    function decrement(){
      state -= 1;
      return state;
    }
    
    return Object.freeze({
      increment,
      decrement
    });
}
var counter = new Counter();
counter.increment = function() {};
console.log(counter.state);
console.log(counter.increment());//1
console.log(counter.decrement());//0