总结:
1. Function函数是所有函数的祖先函数
2. 所有构造函数都有一个protype属性
3. 所有原型对象都有一个constructor属性
4. 所有函数都是对象
5. 所有对象都有一个protype属性
上图说明:
1. 每个Function构造函数都有一个prototype属性,指向Function的原型对象; 相应的,每个Function的原型对象都有一个constructer属性,指向Function构造函数的prototype属性.
2. 由Function构造函数可以构造出Person构造函数, 自然Person构造函数具有Prototype属性. 又Person构造函数毕竟是构造函数, 那么其Prototype属性指向原型对象. 相应的, 原型对象的constructor指向Person构造函数, 这类似于第一条. 但是 由Function构造函数构造出来的Person构造函数同时具有__proto__属性, 这个属性指向Function的原型对象.
3. 同理, 由Person构造函数构造的Obj1 实例对象也具有__proto__属性, 指向原型对象的constructor属性. 即实例对象的__proto__属性指向创建它构造函数的原型对象.