原型和原型链

创建了一个a对象,若现在还想创建一个b对象,内容和a对象一样,那么不需要像a一样敲如此繁多的代码,直接让b引用a就行了。

但是由于b引用的a,所以a,b共一个内存地址,可以说是a创造了b,b中所包涵的属性来源于a;
let b=a 这里我们称b为实例对象,a为引用对象;
b.__proto__ === a.prototype;//true
__proto__是实例对象的隐性方法,prototype是引用对象的显性方法;
若是再某一个对象里面找方法,在对象中找不到则通过对象的隐性方法去找它的上一级
简单的来说b.name,b里没有包含name的属性,则去b.__proto__里去找,而,b.__proto__ === a.prototype;
从而找到了a的name属性;形象的来说b引用了a,则a为b的妈妈,b找不到的东西,b就找他的妈妈要,b.__proto__就是b在找妈妈,,a.prototype就是妈妈在回应b;
而在稍微复杂一点点的程序中,通过__proto__来一层层找从而形成一条链,称为原型链;原型链的,而原型链的尽头是object,而objecte.__proto__为null;

浙公网安备 33010602011771号