首页 > 代码库 > 原型和原型链的扯淡

原型和原型链的扯淡

一、首先谈谈原型

每个对象都有个属性prototype,名为原型,是一个指针属性,该属性指向一个原型对象;

而原型对象也有一个指针属性constructor,该指针指向原型对象的实例的构造函数;

构造函数实例化之后的实例则是存在_proto_属性,该属性指向构造函数的原型对象;

实例的constructor == prototype.constructor;

 

二、原型链

接下来用一段形象的话记录我对原型的感悟:

把构造函数看成是一个人,然后prototype是人的一个属性:基因,该基因指向一个细胞,也就是原型对象,而细胞也有一个属性,叫做组织属性(constructor),使用这个属性,细胞就可以组织成一个人,所以说原型对象(细胞)的constructor(组织)指向构造函数(人);所谓继承,也就是将细胞的基因传给子代,即实例是一个子代,实例的属性来自上一代的细胞里的基因;从而实现了继承;

择日搞个图出来更形象。

 

原型和原型链的扯淡