对象,构造函数,原型的三角关系:
每一个构造函数都有prototype属性,指向原型;原型中有属性constructor指向构造函数;实例(对象)中有属性__prototype__指向原型,创建出来的实例是可以直接访问原型对象上的成员。
关于原型上的一些注意点:
添加到构造函数上的一些成员,实例是无法获取到的;添加到原型上的成员,实例可以获取。
原型链的形成:
一个对象有它自己的原型,原型也可以看成一个对象,有它自己的原型,这样一环扣一环,就形成了一个原型链,。
结论:实例可以访问自己的属性,原型的属性可以访问,原型链上的也就以访问。
实例在获取属性时,首先时是去访问自己的,如果没有,就在原型链上就近查找;当实例去修改属性时,只会修改自己的,自己有这个属性,直接修改,没有就新建添加值,不会对原型进行修改。
原文:https://www.cnblogs.com/z-lin/p/10915523.html