处理此命名空间 JavaScript 结构的最佳方法是什么?

What is the best way to deal with this Namespace JavaScript Structure?

我有一个对象作为具有三个主要对象的命名空间。我调用这个对象一次,之后它就自己工作了。

我的代码结构如下:

var Application = Application || {};
Application.Module1 = {
//Code with some functions
}

Application.Module2 = {
   //Code with some functions
}

Application.Module3 = {
   //Code with some functions
}

(function(){
    Application.Module1.Start();
})();

主要是模块之间的工作。例如,当我在模块 1 中时,我想调用模块 2 中的一个函数,例如:

Module2.randomFunction();

而不是:

Application.Module2.randomFunction();

但我认为去是个坏主意

Application.Module1.Start.call(Application)

因为我也在使用其他对象,例如 jQuery。

您认为正确的方法是什么?

您可以使用这样的模式 -

var Application = (function() {
    var Module1 = {
        function1 : function() {
            console.log("function1");
            Module2.function2();
        }
    };

    var Module2 = {
        function2 : function() {
            console.log("function2");
        }
    };

    var Module3 = {
        function3 : function() {
            console.log("function3");
        }
    };

    return {
        Module1: Module1,
        Module2: Module2,
        Module3: Module3
    }
})();

Application.Module1.function1();