每个对象都有一个隐式原型,函数也是对象所以函数也有。隐式原型指向了构造它的函数的原型对象。
函数除了有隐式原型外还有个显示原型prototype
,指向了这个函数的原型对象。
原型
- 无论什么,只要创建了一个新函数就会根据一组特定的规则为该函数创建一个
Prototype
属性,这个属性指向的函数的原型对象
原型对象
- 所有的原型对象都会自动的获得一个
constructor
属性,它默认指向prototype
属性所在的函数.
实例
- 构造函数通过
new
关键字创建了一个实例, 实例有个属性__proto__
指向了原型对象.
简单总结:每个构造函数都有一个原型对象,每个原型兑现都有一个指针指向构造函数,每个实例都有一个指向原型对象内部的指针
原型链
- 原型链是实现对象继承的主要方法
- 基本思想: 利用原型让一个引用类型去继承另外一个引用类型的属性和方法.
- 如果我们让原型对象等于另外一个类型的实例,那么此时的原型对象必然也包含一个指向另一个原型对象的指针,假如另一个原型对象又是另一个类型的实例,那么上述的关系是依然存在的,这样就形成了原型链~
- 原型链的顶端是
Object.__proto__