#关于对JavaScript中原型的继承机制
个人理解:
1.prototype(原型对象)是一整个构造函数对实例化该函数设计出的一个可供所有实例对象使用的共享的对象,其中的属性和方法是共享的!
2.proto(对象原型),实例对象身上自动添加一个对象原型指向构造函数的原型对象,但不可以使用该属性(对象);
3.在原型对象和对象原型里面都有constructor属性,主要用于记录该对象引用于那个构造函数,
4.实例对象通过原型对象找到上一级的构造函数,该构造函数能通过自己的原型对象找到自己上一级的构造函数,这种关系形成了原型链. 找到最后一层没有构造函数的时候,原型对象找到的就是null.
资料查阅:
prototype包含在每个构造函数当中,所有实例对象需要的共享的属性和方法都放在这个对象里面,那么不需要共享的属性和方法就放在构造函数内.
(构造函数内的方法调用,两个不同的实例对象其中一个修改,不会影响另一个,他们两个是独立的;把不变的方法(公共的方法属性)定义到prototype对象里,这样就可以实现共享,只要修改prototype对象就会同时影响两个实例对象);
总结
由于所有的实例对象共享同一个prototype对象,那么看起来,prototype对象就好像是实例对象的原型,而实例对象则好像’继承’了prototype对象一样;
(资料查阅与 阮一峰关于js继承机制);