要点:

因为vm上面有许多的方法和属性,这样就可以做到,vm能用的vc也能用

就是这个代码
Vuecomponent的原型对象的隐式原型属性就是vue的原型对象

注:
我们这边说的vc就是VueComponent的简写,就是一个组件的实例对象,就是一个小型的vm,但是它没有vm的el属性,并且,配置data属性时,只能用函数形式配置

当定义一个构造函数的时候

一般程序员通过红色这条线,进行对原型对象的更改
而程序则通过黄色线进行寻找


观察输出 看是否两条路线找到的原型对象一样

把_proto_省略也可以,因为如果在上面找不到x就用隐式原型链进行查找主动找到_proto_里面的x


表示蓝色框的对象是d 是由红色框的demo构造出来的

demo写的必要性

如果不写就不知道谁是谁缔造的了


这边不能这样写 VueComponent 因为组件是由new VueComponent()生成的,这边这个组件的名字叫school不是VueComponent


顺着隐式原型链找到了里面由$mount $watch

我们这边的vm相当于这边的一个d一个实例对象,所以vm有隐式原型属性_proto_,但是没有显示原型属性prototype

实例对象中的隐式属性永远指向缔造者的原型对象

验证图的流程
打开vm
1.vue的原型对象红色框的

2.
再往下找就找到了尽头,出现了tostring,也就是object的原型对象

这边组件路线由于组件是由new VueComponent()创建的,所以VueComponent是个方法函数有显示属性prototype,并指向VueComponent的原型对象,
当遍写了组件标签,产生了一个VueComponent实例对象(即进行了new VueComponent()),而对象中有_proto_并指向也VueComponent的原型对象,但是一般来说之后会直接指向object的原型对象,但是vue把它路线强制修改了,让之后连接到了vue的原型对象,最后再到object的原型对象
比如再vm上定义一个x,当你在组件上进行寻找,就会找到x因为会找到vue的原型对象,其中就会有x

就是这个代码
Vuecomponent的原型对象的隐式原型属性就是vue的原型对象

验证:

发现在组件上,能读到vm的x

本文探讨了VueComponent如何通过原型链继承Vue的属性和方法。VueComponent实例(vc)虽然缺少vm(Vue实例)的el属性,但可以通过原型链访问vm上的属性。文章通过代码示例解释了VueComponent的隐式原型属性是如何指向Vue原型对象的,从而使得组件能够使用vm的方法。此外,还阐述了Vue中对象实例的隐式原型属性如何指向其构造函数的原型对象,并展示了如何验证这一过程。
807





