I think the code below should display 4, why does it produce 3?
function arithFunc() { var n = 0; return { plusOP: function() { return n++; }, minusOP: function() { return n--; } }; } var aTest = arithFunc(), bTest = arithFunc(); document.getElementById("demo").innerHTML = aTest.plusOP(); document.getElementById("demo").innerHTML = aTest.plusOP(); document.getElementById("demo").innerHTML = bTest.minusOP(); document.getElementById("demo").innerHTML = aTest.plusOP(); document.getElementById("demo").innerHTML = bTest.minusOP(); document.getElementById("demo").innerHTML = aTest.plusOP(); <p id="demo"></p>