- 所有函数都有一个prototype指针,指向原型对象,如图中的Foo的prototype指针。prototype指针的意义是,当我们使用这个构造函数new出新对象的时候,新对象的原型是谁。
- 构造函数的prototype所指向的原型对象有一个constructor指针,指回构造函数。如图中Foo.prototype的constructor指针指向Foo。constructor指针有助于我们找到一个对象的构造函数是谁。
- __proto__每个对象都有,js在new一个对象的时候,会将它的__proto__指向构造函数的prototype指向的那个对象。在上图中,f1、f2这些实例对象的__proto__都指向了Foo.prototype。
- 如果一个对象的__proto__指向了另一个对象,那么前者就继承了后者的所有属性。
- 所有构造函数都有constructor,constructor指向自身(包含Function和Object); new出来的对象是没有constructor的
链接:https://www.jianshu.com/p/116ea3be6ef5