Object.keys返回包含属性的对象的空数组

时间:2018-11-22 17:28:01

标签: javascript ecmascript-6

我的项目包含一个ES6类,其构造函数定义如下:

  constructor() {
    this.campaignName = 'United Way';
    this.campaign = {};
    this.questions = {};
    this.benefits = {};
    this.assistors = {};
    this.locations = {};
    this.buildDataObjects = this.buildDataObjects.bind(this);
    this.retrieve();
  }

在代码后面,使用Object.assign给具有空对象默认值的属性赋予新值;但是,我认为代码与解决当前问题没有任何关系,因此不包括在内。

在项目代码库的其他地方,正在使用console.info输出该类的实例:

enter image description here

从屏幕截图可以明显看出,该对象似乎没有异常。

接下来,输出对象的“ questions”属性:

enter image description here

即使下面的输出包含对象的属性,屏幕快照的第一行也是一个空对象。但是,这些属性是不可访问的,这可以通过以下事实证明:给定对象调用Object.keys会生成一个空数组。

enter image description here

对于这种行为的原因,我完全不知所措,并希望能获得一些见识。预先感谢!

1 个答案:

答案 0 :(得分:0)

正如@Andreas所指出的,控制台输出是在为“问题”分配新值之前执行的。

enter image description here

作为一个旁注,控制台输出中空对象下方的属性的存在加剧了我的困惑,