js 原型

1:原型的概念:js规定,每一个对象都有他自己的一个原型对象,也就是说只要你是一个对象,那他就有属于自己的原型,对象的原型也是一个对象,那么他也就有自己的原型,然后就形成一条原型链;

2:理解原型要知道两个属性:prototype 和__proto__;
prototype是函数访问原型的专有属性;__proto__是对象访问原型的专属属性;然后函数又是一个特殊的对象所以函数同时拥有prototype和__proto__两个属性;![在这里插入图片描述](https://img-blog.csdnimg.cn/20200326233954878.png)
打印出的结构![在这里插入图片描述](https://img-blog.csdnimg.cn/20200328190959208.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjIxMzM1,size_16,color_FFFFFF,t_70)
这时候person1.__proto__===Person.prototype;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200328174023549.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjIxMzM1,size_16,color_FFFFFF,t_70)
所以对象的__proto__总是指向相应函数的prototype;
Person.__proto__===Function.prototype// treu 一个道理;
构造函数Person与实例对象Person之间的链式关系![在这里插入图片描述](https://img-blog.csdnimg.cn/20200328190207917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjIxMzM1,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200328185153449.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjIxMzM1,size_16,color_FFFFFF,t_70)
总结:对象原链的最后归属是内置对象Object.prototype. __proto__===null

posted @ 2020-03-28 20:35  wushicai  阅读(54)  评论(0)    收藏  举报