我正在尝试重构一些JavaScript代码,对于模块模式感到困惑。
现在,我采用的一种方法是简单地声明一个包含组件所有功能的类,如下所示:
var Foo = function(){
this.Bar = {};
...
}
并创建一个新实例供组件使用。但我也读过模块模式,我看不出与我所拥有的相比有什么好处,因为它似乎只是以一种更复杂的方式做了大致相同的事情。也许我只是还没有遇到使其成为更好选择的情况。
例如,像这样的模式:
var module = (function () {
// private variables and functions
var foo = 'bar';
// constructor
var module = function () {
};
// prototype
module.prototype = {
constructor: module,
something: function () {
}
};
// return module
return module;
})();
var my_module = new module();
这个模式似乎与我已经有的东西没有显著区别。这个模式让我能够做什么,以前我不能做到的呢?