简单来说:
原型是我们创建函数的时候,系统帮我们自动生成的一个对象。 主要作用是解决构造函数内部方法内存资源浪费问题。在开发中我们一般把实例对象一些通用的方法放入原型中,在 vue 里面有时候也会给 vue 的原型添加一些公共类方法来实现所有的组件中可以共享成员。像一些常见的$router和$store 都是挂载到 vue 的原型上的
原型链当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的_proto_隐式原型上查找,就是它的构造函数prototype,如果还没有找到就会再在构造函数的prototype的_proto_中查找,这样一层一层向上查找就是行成一个链式结构,我们称之为原型链.
总结:
-
一切对象都是继承自
Object
对象,Object
对象直接继承根源对象null
-
一切的函数对象(包括
Object
对象),都是继承自Function
对象 -
Object
对象直接继承自Function
对象 -
Function
对象的__proto__
会指向自己的原型对象,最终还是继承自Object
对象