Ten kod nie ma nic wspólnego z Revealing Module Pattern. RMP polega na tym, że wykorzystując IIFE i closures możesz kontrolować dostęp do funkcji/zmiennych zwracając tylko publiczne API.
Kopiuj
var myRevealingModule = (function () {
var privateVar = 'foo';
function setVar(newVar) {
log('setting var!');
privateVar = newVar;
}
function getVar() {
log('getting var!');
return privateVar;
}
function log(action) {
console.log('I am ' + action);
}
return {
setVar: setVar,
getVar: getVar
};
})();
console.log(myRevealingModule.getVar());
// I am getting var!
// foo
myRevealingModule.setVar('bar');
// I am setting var!
console.log(myRevealingModule.getVar());
// I am getting var!
// bar
console.log(myRevealingModule.privateVar);
// undefined
console.log(myRevealingModule.log('trying to access private member'));
// Uncaught TypeError: myRevealingModule.log is not a function(…)
Twój kod ma kilka dużych błędów. Po pierwsze "funkcja-konstruktor" powinna byc pisana z wielkiej litery, a drugie this.style jest undefined, a na undefined nie możesz ustawic property color.