论断:VueComponent.prototype.__proto__ === Vue.prototype
Vue 与 VueComponent 的关系如图所示:
(图一)
前提常识:
每个函数 function 都有一个 prototype 属性,即显式原型(属性),它默认指向 Object 空对象,
每个实例对象都有一个__proto__属性,即称隐式原型(属性)。
关系图剖析:
当咱们创立一个 vue 实例对象 vm 的时候,
则 Vue.prototype === vm.__proto__,都指向 Vue 的原型对象。
当咱们创立一个组件实例对象 vc 的时候,
则 VueComponent.prototype === vc.__proto__,都指向 VueComponent.prototype 的原型对象。
Vue 和 VueComponent 最终本该都指向 Object 原型对象(如图二黄实线),可 VueComponent 把本来指向 Object 的原型对象改到指向 Vue 原型对象(如一图黄虚线),即 VueComponent.prototype.__proto__ === Vue.prototype,目标是 为了组件实例对象(vc)能够拜访到 Vue 原型上的属性和办法
(图二)