繁体   English   中英

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

[英]Object.keys returns an empty array for an object containing properties

我的项目包含一个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输出类的实例:

在此处输入图片说明

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

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

在此处输入图片说明

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

在此处输入图片说明

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

正如@Andreas指出的那样,控制台输出是在将新值分配给“问题”之前完成的。

在此处输入图片说明

附带说明一下,控制台输出中空对象下方的属性的存在加剧了我的困惑,这些属性显然是在事实之后附加的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM