说我有一个如下对象,
var ob = {}
现在我想为其分配值,如下所示
ob = {
data: {
id: '123456'
}
}
我试过ob.data.id = '123456'
,它提示我
TypeError:无法设置未定义的属性“id”
除非我这样做
ob.data = {}
ob.data.id = '123456'
我想知道是否有更简单/更优雅的方式来实现同样的目标?非常感谢。
答案 0 :(得分:1)
var ob = {};
ob.data.id = '123456';
上面的代码会出错,因为您已将变量ob
初始化为对象,但在下一行中,您尝试将属性id
添加到ob.data
。此处ob.data
尚未定义(undefined
)。
var ob = {};
ob.data = {};
ob.data.id = '123456';
此代码有效,因为首先将变量ob
初始化为对象,然后为其添加了属性data
,它也是一个对象,然后最后添加{{1} } id
对象的属性。
正如@Lewis的评论所指出的,你可以将最后两个语句组合成一个语句,如下所示。
ob.data
这会产生相同的结果。