我不明白Object和Object.constructor之间的区别。
我们举一个例子:
function Person() {}
var p = new Person();
Person是创建对象的函数。所以:
p instanceof Person //true
p.constructor // Person
Person是构造函数,我可以使用new Person()
创建人员但是Object也是一个构造函数(我可以使用新的Object()创建对象)。那么为什么Object有一个构造函数属性,因为它本身已经是一个构造函数呢?
由于
答案 0 :(得分:2)
那么为什么它有一个构造函数属性,因为它本身已经是一个构造函数呢?
因为每个构造函数都是一个函数,并且它们从Function.prototype
继承了它们的属性(如call
,apply
和bind
方法)。包含Function.prototype.constructor
属性,该属性指向Function
。
答案 1 :(得分:-1)
constructor
是指向用于创建给定值的constructor function
的指针,所有对象都有一个。对于原语,它指向原始构造函数:Object
,Number
,Function
等等。
Doc:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor