JavaScript 只有一种结构:对象。
每一个构造函数都有一个原型对象(prototype)每一个原型对象都有一个指针(constructor)指向构造函数;
只有函数才有prototype属性
每个实例对象( object )都有一个私有属性(称之为 __proto__ )指向它的原型对象( prototype )。
该原型对象也有一个自己的原型对象( __proto__ ) ,层层向上直到一个对象的原型对象为 null。
根据定义,null 没有原型,并作为这个原型链中的最后一个环节。
原型对象上的属性和方法能被实例访问到
几乎所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。