如何在 javascript 模块模式中使用内部命名空间

How to use internal namespace in javascript moduler pattern

我有 2 个 .js 实用程序文件。我正在使用如下的模块模式。 MODULE1 & MODULE2 是全局命名空间。此外,在内部,两个 .js 文件都对命名空间使用相同的变量名称,即 "mynamespace" 我想知道这会导致两个模块中内部名称空间名称相同的任何问题。

1.js

var MODULE1 = (function () {
    var mynamespace = {};

    privateVariable = 1;

    function privateMethod() {
    // ...
    }

    mynamespace .Init = function () {
    // ...
   };

    return mynamespace ;
 }());

2.js

var MODULE2 = (function () {
   var mynamespace = {};    

   privateVariable = 1;

   function privateMethod() {
    // ...
   }

   mynamespace.Init = function () {
    // ...
   };

   return mynamespace;
}());

否,因为 mynamesapce 变量仅在每个函数的局部范围内定义。

如果 mynamespace 是全局的,会给你带来麻烦,但事实并非如此