代码之家  ›  专栏  ›  技术社区  ›  dade

JavaScript的对象文字和控制台登录时似乎命名的对象之间有什么区别?

  •  1
  • dade  · 技术社区  · 8 年前

    安慰已记录 前缀为名称。

    {id: 18, date: "2017-09-13T21:59:59.999Z"...etc}
    

    但是,当我控制台从服务器调用中作为承诺返回的相同日志时,我得到:

    Resource {id: 18, date: "2017-09-13T21:59:59.999Z"...etc}
    

    是什么导致了这种差异?一个物体的两种不同表征之间有什么区别?

    3 回复  |  直到 8 年前
        1
  •  1
  •   Patrick Kunka    8 年前

    后者是命名类的实例:

    class Resource {
       constructor() {
          this.id = ...;
          this.date = ...;
       }
    }
    

    或命名构造函数:

    function Resource() {
      this.id = ...;
      this.date = ...;
    }
    

    在这两种情况下,使用 new 关键字,但是 class 是较新的ES6语法。

    console.log(new Resource())
    

    第一个示例只是一个没有构造函数的普通对象。

        2
  •  1
  •   Jonas Wilms    8 年前

    constructor 属性,它不指向 Object ,但是 Ressource 那样的话

        3
  •  1
  •   Olga    8 年前

    控制台正在给你提示,它并不总是按原样记录东西。

    var Cat = function (name) {
        this.name = name;
    }
    
    var paws = new Cat('paws');
    console.log(paws);
    

    行为类似于 Resource constructor .