javascript中的嵌套对象,最佳做法 [英] Nested objects in javascript, best practices

查看:57
本文介绍了javascript中的嵌套对象,最佳做法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I would like to know the correct way to create a nested object in javascript. I want a base object called "defaultsettings". It should have 2 properties (object type): ajaxsettings and uisettings. I know that i can write something like

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

defaultsettings.ajaxsettings = ajaxsettings.. etc.

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

But what i want to know is how to type it this way (that i suppose is a more correct way of doing it):

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

我想你明白了.谢谢!

推荐答案

如果您事先知道设置,则可以在一条语句中对其进行定义:

If you know the settings in advance you can define it in a single statement:

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

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

If you don't know the values in advance you can just define the top level object and then add properties:

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

或者在两者之间,将嵌套的空对象定义为属性的顶层,然后将属性添加到这些嵌套的对象中:

Or half-way between the two, define the top level with nested empty objects as properties and then add properties to those nested objects:

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

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

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

You can nest as deep as you like using the above techniques, and anywhere that you have a string literal in the square brackets you can use a variable:

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

请注意,您不能 使用{}文字语法为键名使用变量.

Note that you can not use variables for key names in the { } literal syntax.

这篇关于javascript中的嵌套对象,最佳做法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆