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:谢谢你的反馈,我更改了它。