在Revealing Module Pattern的示例中,它通常与Immediately Invoked Function Expression一起使用,如下所示:
var foo = (function () {
..rmp definition ...
})();
在定义后立即创建模块的实例。所以我的问题是:RMP是否应该阻止我们在一个地方定义它然后在以后实例化它,可能不止一次?像这样:
var foo = function () {
..rmp definition ...
};
...
...
var foo1 = foo();
var foo2 = foo();
JSHint让我感到奇怪,因为我曾经把'foo'大写,并且警告说它不是构造函数(这是真的)所以它不应该以大写字母开头。所以我的第二个问题是,对于稍后要使用的变量存储模块定义,建议使用哪种命名约定?
P.S。我知道RMP被一些人认为是反模式,但这不是我所要求的。我们也可以谈论常规模块模式。