Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript组织对象结构的首选方法_Javascript - Fatal编程技术网

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

Javascript组织对象结构的首选方法,javascript,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 ()

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

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”


是否有一种标准的方法来构造大型应用程序?我想我可以保持它漂亮的一种方法是在其他地方而不是在对象层次结构中定义函数

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

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这样的通用名称。如果它们具有唯一的函数,则为它们指定描述其函数的唯一名称。如果它们都有相同的函数,那么创建一个可重用的对象,您可以创建多个实例。如果它们都是相同的,并且没有唯一的预先声明的数据,那么只需在一个循环中初始化它们。

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

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这样的通用名称。如果它们具有唯一的函数,则为它们指定描述其函数的唯一名称。如果它们都有相同的函数,那么创建一个可重用的对象,您可以创建多个实例。如果它们都是相同的,并且没有唯一的预先声明的数据,那么只需在一个循环中初始化它们。

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

另外,我可以给您一个提示,就是使用以下模式分离代码:

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

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

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

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

另外,我可以给您一个提示,就是使用以下模式分离代码:

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

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

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

我也很难做到这一点。以下是一些我觉得很有启发性的博客帖子:


我也在努力解决这个问题。以下是一些我觉得很有启发性的博客帖子:


这整件事对我来说似乎很奇怪。您正在对它执行什么类型的操作,或者为什么要在一行中定义这么多对象?我正在开发一个需要大型对象结构的大型应用程序。每个物体都有不同的功能,在它上面执行。这整件事对我来说似乎很奇怪。您正在对它执行什么类型的操作,或者为什么要在一行中定义这么多对象?我正在开发一个需要大型对象结构的大型应用程序。每个对象都有在其上执行的不同功能。其他一些可能有用的链接:其他一些可能有用的链接: