JavaScript pattern: Module

Design pattern Module pomáhá implementovat klasický model softwarových modulů, který zapouzdřením proměnných a funkcí redukuje globální scope. Jedná se o jeden z nejpoužívanějších návrhových vzorů.

// definice promenne, co by module, ktera vse zapouzdruje
var myFunc = (function() {
   var data = 'mydata';
   return {
       changeData: function () {
           console.log(data);
           data = "changedData";
           console.log(data);
       }
   }
})();

myFunc.changeData();

V příkladu interně definované proměnné zůstávají pro ostatní kód skryté, protože jejich existence je omezena jen do volání definice samotného modulu (to je ten pár závorek před stredníkem). Jedná se o typický příklad javascriptového closure. Pro přístup k intertním datům modulu je potřeba volat funkci, nebo funkce vracejíci jako návratovou hodnotu definice modulu.