When implementing the module pattern, how do private functions access the private properties of the module? I haven\'t seen any examples where developers do this. Is there any r
When implementing the module pattern, how do private functions access the private properties of the module?
The properties are in scope, so they "just do"
Doesn't work.
Yes, it does.
_privateIncrement
doesn't have access to the module's scope.
Yes, it does.
See live example of the following:
var module = (function(){
// private property
var number = 0;
// global method
_privateIncrement = function(){
number++;
};
// public api
return {
// OK
getNumber: function(){
return number;
},
// OK
incrNumber: function(){
number++;
},
// Does work!
privateIncrNumber: function(){
_privateIncrement();
}
};
})();
// Show default value
document.body.innerHTML += (module.getNumber());
// Increment
module.privateIncrNumber();
// Show new value
document.body.innerHTML += (module.getNumber());
// Increment (since _privateIncrement was defined as a global!)
_privateIncrement();
// Show new value
document.body.innerHTML += (module.getNumber());
// Output: 012