javascript中的嵌套对象,最佳实践

时间:2011-10-29 23:42:45

标签: javascript object

我想知道在javascript中创建嵌套对象的正确方法。我想要一个名为“defaultsettings”的基础对象。它应该有2个属性(对象类型):ajaxsettings和uisettings。我知道我可以写点像

var defaultsettings = new Object();
var ajaxsettings = new Object();

defaultsettings.ajaxsettings = ajaxsettings.. etc.

但我想知道的是如何以这种方式输入它(我认为这是一种更正确的方式):

var defaultsettings = { 
    var ajaxsettings = { ... }
};

我想你明白了。谢谢!

3 个答案:

答案 0 :(得分:73)

如果您事先知道设置,可以在一个声明中定义:

var defaultsettings = {
                        ajaxsettings : { "ak1" : "v1", "ak2" : "v2", etc. },
                        uisettings : { "ui1" : "v1", "ui22" : "v2", etc }
                      };

如果您事先不知道这些值,则可以定义顶级对象,然后添加属性:

var defaultsettings = { };
defaultsettings["ajaxsettings"] = {};
defaultsettings["ajaxsettings"]["somekey"] = "some value";

或者在两者之间,使用嵌套的空对象作为属性定义顶级,然后向这些嵌套对象添加属性:

var defaultsettings = {
                        ajaxsettings : {  },
                        uisettings : {  }
                      };

defaultsettings["ajaxsettings"]["somekey"] = "some value";
defaultsettings["uisettings"]["somekey"] = "some value";

您可以使用上述技术尽可能深地嵌套,并且在方括号中有字符串文字的任何位置都可以使用变量:

var keyname = "ajaxsettings";
var defaultsettings = {};
defaultsettings[keyname] = {};
defaultsettings[keyname]["some key"] = "some value";

请注意,您可以在{}文字语法中使用变量作为键名。

答案 1 :(得分:11)

var defaultsettings = {
    ajaxsettings: {
        ...
    },
    uisettings: {
        ...
    }
};

答案 2 :(得分:3)

var defaultSettings = {
    ajaxsettings: {},
    uisettings: {}
};

请查看此网站:http://www.json.org/

此外,您可以尝试从浏览器中调用其中一个对象上的JSON.stringify()以查看json格式。您必须在控制台或测试页面中执行此操作。