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.