Шаблон модуля не является шаблоном класса.Вы не можете просто притворяться, что у вас теперь есть классы в JavaScript.Что касается наследования, если вам действительно нужно наследовать вещи, вы должны создать объект с помощью функции конструктора и использовать наследование прототипа, хотя иногда оно выполняется медленнее.
Что касается создания подмодуля, то это просто
MODULE.submodule = (function(){
// another module stuff that can even reference MODULE
return { submodule: 'property' }
})();
Теперь, что касается подкласса в классическом смысле, вы можете смоделировать его на объектах с прототипами, как Дуглас Крокфорд http://www.crockford.com/javascript/inheritance.html
Для имитации его с модулями вы можете попытаться создать печать /распакуйте функции внутри исходного модуля и используйте их в своих подмодулях.Вы можете проверить здесь http://www.pallavlaskar.com/javascript-module-pattern-in-details/ для
клонирования и наследования
var MODULE_TWO = (function (old) {
var my = {},
key;
for (key in old) {
if (old.hasOwnProperty(key)) {
my[key] = old[key];
}
}
var super_moduleMethod = old.moduleMethod;
my.moduleMethod = function () {
// override method on the clone, access to super through super_moduleMethod
};
return my;
}(MODULE))
или
кросс-файла частного состояния
var MODULE = (function (my) {
var _private = my._private = my._private || {},
_seal = my._seal = my._seal || function () {
delete my._private;
delete my._seal;
delete my._unseal;
},
_unseal = my._unseal = my._unseal || function () {
my._private = _private;
my._seal = _seal;
my._unseal = _unseal;
};
// permanent access to _private, _seal, and _unseal
return my;
}(MODULE || {}));