如何在对象文字中添加对象文字[重复]

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 不允许使用不带引号的保留字作为属性名称,例如:defaultdeletedodoubleelseenum,...案例在这里。

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

C = "A":"a","B":"b","C":"c", "D":D ;

还有:

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

关键是 javascript 对象有点像 HashMaps,带有键和值,使用文字语法,您可以使用其中的所有其他对象和值来创建它。您还可以在创建对象后添加新的键值对。

【讨论】:

"并且如果您的 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;

【讨论】:

以上是关于如何在对象文字中添加对象文字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android给图片添加文字和水印

修改猫鼬对象文字结果不起作用[重复]

如何在 JavaScript 对象文字中使用变量作为键?

如何在ArcGIS中恢复注记文字

如何在文字对象上正确使用接口

严格模式下不允许对象文字中的重复数据属性