- 所有的函数数据类型都天生自带一个属性:prototype(原型),这个属性的值是一个对象,浏览器会默认给它开辟一个堆内存
- 在浏览器给prototype开辟的堆内存中有一个天生自带的属性:constructor,这个属性存储的值是当前函数本身
- 每一个对象都有一个
__proto__的属性,这个属性指向当前实例所属类的prototype(如果不能确定它是谁的实例,都是Object的实例)
在实际项目基于面向对象开发的时候(构造原型设计模式),我们根据需要,很多时候会重定向类的原型(让类的原型指向自己开辟的堆内存)
它也是一种查找机制,实例首先在自己的私有属性中进行属性的查找, 如果不是私有属性,基于proto 向所属类的原型上进行查找,如果在找不到,则继续基于proto 向上查找,一直找到Object.prototype为 例如:obj.hasOwnProperty() 这里调取的hasOwnProperty,这个属性就是找到Object.prototype才找到的
