原型链二

函数有个属性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

你可能感兴趣的:(原型链二)