原型和原型链

  

 创建了一个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;

posted @ 2022-03-19 22:05  贫僧不秃头  阅读(37)  评论(0)    收藏  举报