处理此名称空间JavaScript结构的最佳方法是什么?
我有一个对象作为名称空间,有三个主要对象。我调用这个对象一次,然后它自己工作 我的代码的结构如下:处理此名称空间JavaScript结构的最佳方法是什么?,javascript,architecture,Javascript,Architecture,我有一个对象作为名称空间,有三个主要对象。我调用这个对象一次,然后它自己工作 我的代码的结构如下: var Application = Application || {}; Application.Module1 = { //Code with some functions } Application.Module2 = { //Code with some functions } Application.Module3 = { //Code with some function
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();
也许你可以这样做:。这不是最好的解决方案,但如果您必须多次调用某些Module2函数,这是一种简捷的方法。避免使用非构造函数。谢谢您的回答!这看起来像是我一直在寻找的图案@贝纳斯顿:到底是什么问题?@sibe94按惯例,如果变量与构造函数或常量相对应,则它们只能以大写字母开头。啊,好的,谢谢@杰巴特里克有这个图案的名字吗?我在找一份文件,据我所知不是。这是一种利用JS的闭包特性来完成您想要实现的名称空间组织的方法。JS是一种非常通用的语言,您可以完全控制想要遵循的构造/模式。