js原型链

js原型链

  • js中每个函数都有一个prototype属性,这个属性指向函数的原型对象(该对象初始内容只包含一个键值对: constructor: f () ,后续通过构造函数的prototype属性添加的内容,将会以键值对的形式出现在该对象中)
  • 每个对象都有一个__proto__属性,这个属性指向该对象的原型
  • 每个原型都有一个constructor属性,这个属性指向关联的构造函数

总结:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型的内部指针。(instance.__proto__=== constructor.prototype

   所有构造函数的__proto__指针指向都是Function.prototype,所有对象的__proto__指针最终指向都是Object.prototype,

   而Object.prototype的__proto__属性值为null。

   利用原型链查找标识符:instance.__proto__ ===> constructor.prototype.__proto__ ===> Object.prototype.__proto__ ===> null

(这里提及到了原型链,补充一个vue内置关系:VueComponent.prototype.__proto__ === Vue.prototype)

posted @ 2021-10-08 15:25  亦茫茫  阅读(36)  评论(0编辑  收藏  举报