javascript - 空初始化的 javascript 对象包含大量属性和函数

标签 javascript angular

我使用的是 Angular 8。在组件中,我有这个函数

  private build(obj1: object, obj2: object) {
    const result: object = {};
    console.log('begin result');
    console.log(result);
    console.log('end result');

在 firebug 中我可以看到以下输出

enter image description here

enter image description here

正如您所看到的,通常为空的对象中有属性和函数。为什么 ?我只能告诉您,这些属性是我在此组件中使用的 FormGroup 的属性

  private build(obj1: object, obj2: object) {
    const result: object = {};
    console.log('begin result');
    console.log(result);
    console.log('end result');
    for (const property in obj1) {
      console.log('property in obj1');
      console.log(property);
      console.log(result);
      result[property] = obj1[property];
      console.log(result);
    }
    for (const property in obj2) {
      console.log('property in obj2');
      console.log(property);
      if (!obj1.hasOwnProperty(property)) {
        if (obj2.hasOwnProperty(property) && obj2[property]) {
          result[property] = obj2[property];
        } else {
          result[property] = '';
        }
        console.log(result);
      }
    }
    return result;
  }

最佳答案

我从未使用过 Firebug,但我假设它保存对 result 对象的引用,而不是出于日志记录的目的克隆它,因此之后添加的所有属性当您在日志中展开 console.log 时,它仍然会显示。要检查,请尝试:

console.log('begin result');
console.log(Object.keys(result));
console.log('end result');

这将及时向您显示附加到结果的所有键。

关于javascript - 空初始化的 javascript 对象包含大量属性和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60889703/

相关文章:

angular - 如何使用 Nebular 对话框组件将数据传递给 Angular 组件?

javascript - 如何将 jQuery 导入 Angular 2+/Webpack/Angular CLI 中的 jQuery 插件

angular - 如何实现 Angular 4 Material Sidenav 组件?

php - Codeigniter - 在特定 View 上加载特定的 JS 库

javascript - 浏览器ajax异步调用页面不断加载

javascript - 将类型传递给依赖注入(inject)容器

angular - PrimeNG 编辑器组件自动专注于页面加载

javascript - 阻止 Chrome 提示从输入框保存密码?

javascript - 使用在 IE 8 和 7 中不起作用的类获取标签

angular - Angular 2 中的浏览器样式滚动行为