如何在Javascript中创建一个新的对象元素?

时间:2012-12-11 16:25:59

标签: javascript jquery object element

我很难理解我在这里做错了什么。

我有一个空对象:

if ( doc._attachments === undefined ){
    doc._attachments = {};
}
var attmtid = 123;

我正试图这样填充:

doc._attachments[attmtid].revpos = "abc";

但是我一直从Firebug得到一个未定义的错误:

doc._attachments[attmtid] is undefined

并不能真正理解它。

问题:
有人能告诉我我做错了什么吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

为什么不这样做:

doc._attachments[attmtid] = {
    revpos: "abc"
};

答案 1 :(得分:5)

doc._attachments[attmtid]未定义,这意味着您需要将其定义为某些内容。数组,对象,字符串等。例如,您可以将其作为另一个对象:

doc._attachments[attmtid] = {};

然后能够在该对象上设置属性:

doc._attachments[attmtid].revpos = "abc";

答案 2 :(得分:2)

doc._attachments[attmtid]未初始化为对象,因此您无法动态分配revpos属性。

这应解决它:

doc._attachments[attmtid] = {};
doc._attachments[attmtid].revpos = "abc";

注意:这是基于您希望doc._attachments.123属性(这是问题中的示例代码将创建的属性)而不是doc._attachments.attmid属性的期望。