如何在javascript中的初始化父属性下为属性赋值?

时间:2018-01-11 04:13:28

标签: javascript object

说我有一个如下对象,

var ob = {}

现在我想为其分配值,如下所示

ob = {
  data: {
    id: '123456'
  }
}

我试过ob.data.id = '123456',它提示我

  

TypeError:无法设置未定义的属性“id”

除非我这样做

ob.data = {}
ob.data.id = '123456'

我想知道是否有更简单/更优雅的方式来实现同样的目标?非常感谢。

1 个答案:

答案 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

这会产生相同的结果。