我已经注意到有时候我会有机。姓名。
例如,如果我在将其发送到服务器之前委托对象。
{id: 18, date: "2017-09-13T21:59:59.999Z"...etc}
但是,当我安装了与服务器调用的承诺返回相同的日志时,我会得到:
Resource {id: 18, date: "2017-09-13T21:59:59.999Z"...etc}
是什么原因导致这种差异?似乎对象的两个不同表示之间有什么区别?
后者是命名类的实例:
class Resource {
constructor() {
this.id = ...;
this.date = ...;
}
}
或命名构造函数:
function Resource() {
this.id = ...;
this.date = ...;
}
在两种情况下,使用new
关键字实例化的类或构造函数,但是class
是较新的ES6语法。
console.log(new Resource())
您的第一个示例只是一个没有构造函数的普通对象。
它们具有constructor
属性,该属性指向Object
,而是指向Ressource
。
控制台为您提供提示,并不总是按原样记录。
例如:
var Cat = function (name) {
this.name = name;
}
var paws = new Cat('paws');
console.log(paws);
在您的示例中将与Resource
相似。控制台暗示constructor
。