原型链

是什么

对象 有 __proto__ 属性,指向原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样形成的一环一环的链式结构,就是原型链。

老祖宗 function Object()

function Person() {}

let per = new Person()

//原型链:
per.__proto__ ==> Person.prototype

Person.prototype.__proto__ ==> Object.prototype

Object.prototype.__proto__ ==> null

属性查找原则

简单理解:沿着对象的原型链来查找

  1. 先找对象自身,自身有就直接来使用
  2. 对象自身没有,就找原型对象
  3. 如果原型对象也没有,就沿着原型链继续往上找,直到Object.prototype
  4. 如果整个链上都没有,返回undefined

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注