我很难理解我在这里做错了什么。
我有一个空对象:
if ( doc._attachments === undefined ){
doc._attachments = {};
}
var attmtid = 123;
我正试图这样填充:
doc._attachments[attmtid].revpos = "abc";
但是我一直从Firebug得到一个未定义的错误:
doc._attachments[attmtid] is undefined
并不能真正理解它。
问题:
有人能告诉我我做错了什么吗?
谢谢!
答案 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
属性的期望。