vue与vueComponent的原型关系
vue原型和js原型的区别
js原型跟函数继承一样,需要每个函数对象会有一个prototype对象属性,会指向他上面另一个对象。
所以prototype对象属性可以被用来做继承,继承的作用的为了使用父类的方法。
所以prototype对象属性作为显性连接,连接着js的原型对象,当时构造函数时,构造对象属性是无法继承到prototype对象属性,但是实例对象会有一个隐式连接(proto),用来向上查询函数的原型对象。
实例对象的隐式连接(proto)永远指向缔造自己构造函数的原型对象。
例子代码如下:
function Person() {
}
var p = new Person()
console.log(Person.prototype); // Object{} //Person原型对象向上查找
console.log(p.prototype); //undefined
vue类似js的原型一样,当vue本身是一个构造函数,他的prototype对象属性显性连接到自己的原型对象上,
当new vue({})构造一个实例对象vm时,vue的实例对象vm的隐式连接(proto)也会连接到自己的原型对象上。
然后vue的原型对象的隐式连接(proto)会向上查询构造他的原型对象,
找到最顶层的方法就是object的原型对象。

在了解一下vue与vueComponent的关系:
跟vue有些区别,vueComponent是vue类似儿子的关系,他是为了创建组件而产生的一个类似vue一样的构造函数,
但是vueComponent需要跟着vue才能被使用,所以vueComponent的原型对象向上查找的原型对象是vue,然后才会与vue有所关联。才能使用到vue的原型上的那些属性和方法。

浙公网安备 33010602011771号