原型
- 每个函数都具有一个存储共用的属性和方法的对象 叫 原型对象
- 构造函数(类)可以通过
prototype这样一个指针来指向该原型对象 - 每当实例化一个对象,该对象就有一个默认的属性
__proto__,通过该属性来指向该构造函数的原型对象,从而共享原型对象上的属性和方法
1 | var arr = []; |

原型链
当通过构造函数实例化一个对象后,对象会具有一个__proto__的属性,该属性自动连接到该对象的构造函数的 原型prototype上,这个链式关系就是原型链
- 所有构造函数的原型也都有一个
__proto__,除了Object之外的所有原型对象的__proto__都指向Object的原型 Object.prototype.__proto__会指向null
1 | //原型链 |
