Easiest to explain with code:
##### module.js
var count, incCount, setCount, showCount;
count = 0;
showCount = function() {
return console.log(count);
};
incC
exports.count = count
Your setting a property count
on an object exports
to be the value of count
. I.e. 0.
Everything is pass by value not pass by reference.
If you were to define count
as a getter like such :
Object.defineProperty(exports, "count", {
get: function() { return count; }
});
Then exports.count
would always return the current value of count
and thus be 11