JS:Object和Object.constructor之间的区别

时间:2018-06-12 12:23:00

标签: javascript prototype ecmascript-5

我不明白Object和Object.constructor之间的区别。

我们举一个例子:

function Person() {}
var p = new Person();

Person是创建对象的函数。所以:

p instanceof Person //true
p.constructor // Person

Person是构造函数,我可以使用new Person()

创建人员

但是Object也是一个构造函数(我可以使用新的Object()创建对象)。那么为什么Object有一个构造函数属性,因为它本身已经是一个构造函数呢?

由于

2 个答案:

答案 0 :(得分:2)

  

那么为什么它有一个构造函数属性,因为它本身已经是一个构造函数呢?

因为每个构造函数都是一个函数,并且它们从Function.prototype继承了它们的属性(如callapplybind方法)。包含Function.prototype.constructor属性,该属性指向Function

答案 1 :(得分:-1)

constructor是指向用于创建给定值的constructor function的指针,所有对象都有一个。对于原语,它指向原始构造函数:ObjectNumberFunction等等。

Doc:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor