原型链二

函数有个属性prototype 用来指向函数的原型对象,原型对象存储函数的共有的属性,那么原型对象如何找到自己的所属函数呢 ?,对象有constructor属性可以找到自己的所属函数,
在用new创建一个对象的时候,我们可以通过点语法访问对象的属性和方法,对象在访问的时候首页会找函数的私有属性,如果没找到继续通过proto属性找到自己的函数所对应的原型对象,在原型对象中找,还没有找到那么原型对象也有自己的__proto属性再向上找自己的原型一直找到Object为止因为Object对象没有proto属性。。。

function Person () {
  this.name = 'xiaoer'
}

var p = new Person();
p.age 

方法调用顺序: p找自己的函数中的私有属性没找到-> p.__proto__ 找到自己的原型对象也没发现对应的属性-> p.__proto__.__proto__ 一直找到Object发现没找到 undefined

总结: 1每一个函数类都有自己的prototype属性
2.每一个原型对象都有自己的constructor属性
3.除了Object以外的通过构造函数创建的对象都有proto

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容