类别 | 备注 | constructor | prototype | __poroto__ |
---|---|---|---|---|
(构造)函数 | 函数即对象 | 指向Function | 指向一个constructor为自身的空对象 | |
对象 | 指向创建该对象的构造函数 | 源于创建该对象的构造函数的显式原型 | ||
Function | 是所有构造器的源头 | 指向自身 | 对象的constructor指向自身 | |
Object | Object.prototype是所有原型的源头 | 指向Function | 是一个constructor指向自身的空对象 |
参考于:
创建对象的方式
构造器(constructor)
对象的构造器都是指向创建该对象的构造函数。例如以下示例代码:
function Foo() {}
var foo = new Foo()
上述示例代码中的 foo 对象的构造器就是 Foo。
隐式原型(__proto__)
对象的隐式原型与创建该对象的构造函数的显式原型是指向同一个对象。
function Foo() {}
var foo = new Foo()
console.log(foo.__proto__ === Foo.prototype)
函数创建方式
函数的特性
显式原型(prototype)
构造函数的显式原型与利用该构造函数所创建对象的隐式原型是指向同一个对象。
构造器(constructor)
函数的构造器就是 Function。
function fun(){}
console.log(fun.constructor === Function)
隐式原型(__proto__)
函数的隐式原型与 Function 的显式原型是指向同一个对象。