Javascript 如何在对象文字中添加对象文字

Javascript 如何在对象文字中添加对象文字,javascript,object-literal,Javascript,Object Literal,假设我有一个如下所示的对象文字: C = {"A":"a","B":"b","C":"c"}; 我想添加另一个像这样的对象 "D" : {"E":e} 其中e是一个变量。和e=“ValueOfE” 因此,C将具有这种值 C = {"A":"a","B":"b","C":"c", "D" : { "E" : "ValueOfE"}}; 我将如何做到这一点?对象文本中的值可以是任意表达式,这意味着它们可以包含其他对象文本,利用现有变量,等等;因此,如果你问我认为你是什么,那么你可以写: C =

假设我有一个如下所示的对象文字:

C = {"A":"a","B":"b","C":"c"};
我想添加另一个像这样的对象

"D" : {"E":e}
其中
e
是一个变量。和
e=“ValueOfE”
因此,
C
将具有这种值

C = {"A":"a","B":"b","C":"c", "D" : { "E" : "ValueOfE"}};

我将如何做到这一点?

对象文本中的值可以是任意表达式,这意味着它们可以包含其他对象文本,利用现有变量,等等;因此,如果你问我认为你是什么,那么你可以写:

C = { "A": "a", "B": "b", "C": "c", "D": { "E": e } };

使用以下语法:

C = {"A":"a","B":"b","C":"c"};
C.D = {"E":e};

假设您的C对象文字如下:

C = {"A":"a","B":"b","C":"c"};
您可以向其中添加任何其他对象,如:

var D = { "E" : e};
C["D"] = D;
C.D = { "E" : e};
或者简单地说:

C["D"] = { "E" : e};
如果您的密钥(
“D”
)是一个有效的标识符,在本例中是,您也可以这样做:

var D = { "E" : e};
C["D"] = D;
C.D = { "E" : e};
除此之外,在一些旧的浏览器中,您不能使用不带引号的保留字。例如,ES3不允许使用不带引号的保留字作为属性名称,例如:
默认值
删除
执行
双精度
其他
枚举
,。。。但事实并非如此

您还可以使用literal创建对象并传递
D
对象:

C = {"A":"a","B":"b","C":"c", "D":D };
而且:

C = {"A":"a","B":"b","C":"c", "D": { "E" : e } };

关键是JavaScript对象是一种带有键和值的
HashMap
s,使用文本语法,您可以使用其中的所有其他对象和值创建它。此外,您还可以在创建对象后添加新的键值对。

看起来很像您已经这样做了……是的,@m59是正确的。此外,如果要在声明对象后添加它。你可以这样做:
c[“D”]={“E”:“ValueOfE”}
@m59-不,我没有。我不会问我是否已经知道答案:)“如果您的密钥(“D”)不是保留关键字…”属性名称必须是有效的标识符名称。例如,
C.if='foo'
是完全有效的,但它可能会导致旧浏览器出现问题。因此,从技术上讲,如果属性名称是保留关键字,也可以使用点表示法,但如果不使用则更好。@FelixKling:谢谢你的反馈,我更改了它。