一、首先谈谈原型
每个对象都有个属性prototype,名为原型,是一个指针属性,该属性指向一个原型对象;
而原型对象也有一个指针属性constructor,该指针指向原型对象的实例的构造函数;
构造函数实例化之后的实例则是存在_proto_属性,该属性指向构造函数的原型对象;
实例的constructor == prototype.constructor;
二、原型链
接下来用一段形象的话记录我对原型的感悟:
把构造函数看成是一个人,然后prototype是人的一个属性:基因,该基因指向一个细胞,也就是原型对象,而细胞也有一个属性,叫做组织属性(constructor),使用这个属性,细胞就可以组织成一个人,所以说原型对象(细胞)的constructor(组织)指向构造函数(人);所谓继承,也就是将细胞的基因传给子代,即实例是一个子代,实例的属性来自上一代的细胞里的基因;从而实现了继承;
择日搞个图出来更形象。
原文:http://www.cnblogs.com/Yoriluo/p/6854539.html