如何在对象文字中添加对象文字[重复]
Posted
技术标签:
【中文标题】如何在对象文字中添加对象文字[重复]【英文标题】:How to add object literal within object literal [duplicate] 【发布时间】:2014-04-13 02:35:00 【问题描述】:假设我有一个如下所示的对象字面量:
C = "A":"a","B":"b","C":"c";
我想添加另一个像这样的对象..
"D" : "E":e
其中e
是一个变量。和e = "ValueOfE"
这样C
就会有这种值..
C = "A":"a","B":"b","C":"c", "D" : "E" : "ValueOfE";
我该怎么做?
【问题讨论】:
看起来很像你已经这样做了...... 是的,@m59 是对的。此外,如果您想在声明对象后添加它。你可以这样做:c["D"] = "E" : "ValueOfE"
.
@m59 - 不,我没有。我不会问我是否已经知道答案:)
【参考方案1】:
假设您的 C 对象字面量如下:
C = "A":"a","B":"b","C":"c";
您可以向其中添加任何其他对象,例如:
var D = "E" : e;
C["D"] = D;
或者简单地说:
C["D"] = "E" : e;
如果你的密钥("D"
)是一个有效的标识符,在这种情况下,你也可以这样做:
C.D = "E" : e;
除此之外,在某些较旧的浏览器中,您不能使用不带引号的保留字。例如 ES3 不允许使用不带引号的保留字作为属性名称,例如:default
、delete
、do
、double
、else
、enum
,...案例在这里。
您还可以使用文字创建对象并传递D
对象:
C = "A":"a","B":"b","C":"c", "D":D ;
还有:
C = "A":"a","B":"b","C":"c", "D": "E" : e ;
关键是 javascript 对象有点像 HashMap
s,带有键和值,使用文字语法,您可以使用其中的所有其他对象和值来创建它。您还可以在创建对象后添加新的键值对。
【讨论】:
"并且如果您的 key("D") 不是保留关键字..." 属性名称必须是有效的标识符名称。所以例如C.if = 'foo';
完全有效,但它可能会导致旧浏览器出现问题。因此,从技术上讲,如果属性名称是保留关键字,您也可以使用点表示法,但最好不要使用。
@FelixKling:谢谢你的反馈,我改了。【参考方案2】:
对象字面量中的值可以是任意表达式,这意味着它们可以包含其他对象字面量,利用现有变量等等;所以如果你问我认为你是什么,那么你可以写:
C = "A": "a", "B": "b", "C": "c", "D": "E": e ;
【讨论】:
【参考方案3】:使用以下语法:
C = "A":"a","B":"b","C":"c";
C.D = "E":e;
【讨论】:
以上是关于如何在对象文字中添加对象文字[重复]的主要内容,如果未能解决你的问题,请参考以下文章