”每个构造函数都有一个原型对象,
原型对象都包含一个指向构造函数的指针,
实例都包含一个指向原型对象的内部指针。”
——此段话摘自《JavaScript高级程序设计》。
下面结合实例简要分析:
一、每个构造函数都有一个原型对象
比如:
可以看到,每个构造函数本身都是一个对象,它有一个属性叫做prototype,它是一个对象。
二、原型对象都包含一个指向构造函数的指针
比如:
对于Object:
对于Function:
对于Array:
对于Date :
[外链图片转存中…(img-O9D8gsWY-1570843750257)]
对于Boolean:
对于String:
对于Number:
可以发现:每个构造函数的prototype属性都是个对象,这个对象都有一个属性constructor,它是个指针,并且指向构造函数本身。
三、实例都包含一个指向原型对象的内部指针
对于Object:
对于Function:
对于Array:
对于Date:
对于RegExp:
对于Boolean:
对于Number:
对于String:
可以看到:实例都有一个属性叫做_proto_
,它是个指针,指向原型对象。