Javascript首选组织对象结构的方法

时间:2011-07-03 19:29:04

标签: javascript

我很好奇组织大型对象结构的标准或常用方法是什么。我的第一反应是如此组织它:

GLOBAL = {
  child_1 : {
     obj_1 : null,
     obj_2 : null,
     func_1 : function () {
       //Stuff defined here....
     }
  },
  child_2 : {
     obj_1 : null,
     obj_2 : null,
     func_1 : function () { 
       //Stuff defined here....
     }
  },
  child_3 : {
    ....

};

这一开始很不错,但是随着文件变得越来越大并且函数被定义,特别是当函数具有相同的名称时,例如“GLOBAL.child_1.func_1”和“GLOBAL.child_2”,它变得难以阅读。 func_1" 。

是否有构建大型应用程序的标准方法?我可以保持它漂亮的一种方式,我认为是在别处定义函数而不是在对象层次结构中。

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

您不必将它们全部放在一个巨大的嵌套结构中。你可以这样做:

var GLOBAL = {};

GLOBAL.child_1 = {
     obj_1 : null,
     obj_2 : null,
     func_1 : function () {
       //Stuff defined here....
     };

GLOBAL.child_2 = {
     obj_1 : null,
     obj_2 : null,
     func_1 : function () { 
       //Stuff defined here....
     };

GLOBAL.child_3 = {
    ....

};

另外,我不明白你为什么要使用像child_1和child_2这样的通用名称。如果它们具有独特的功能,那么给它们描述其功能的唯一名称。如果它们都具有相同的功能,那么创建一个可以重复使用的对象,您可以创建多个实例。如果它们都是相同的并且没有唯一的预先声明的数据,那么只需将它们全部初始化即可。

答案 2 :(得分:1)

您的问题非常有趣,其答案可能非常复杂。我将给你一些关于该主题的链接(一些链接指的是jQuery,但这不是限制):

http://addyosmani.com/blog/large-scale-jquery/

http://blog.rebeccamurphey.com/on-jquery-large-applications

另外,我可以给你的一个提示是使用这种模式分离你的代码:

// file yoursite.somename.js
var GLOBAL = GLOBAL || {};
GLOBAL.somename = {
    someFunction: function() {}
    // [...]
};

// file yoursite.someothername.js
var GLOBAL = GLOBAL || {};
GLOBAL.someothername = {
    anotherFunction: function() {}
    // [...]
};

使用该模式,每个功能都分成一个文件,每个文件将一个密钥添加到GLOBAL对象中。该对象将被声明一次,并且永远不会被覆盖。