JS中原型链关系
在JS中没有类的概念,JS这个语言是“基于对象”(base Object)的语言,不能叫做“面向对象”(orinted object)的语言。
在原生JS中它的内置数据类型是基于Fcuntion也就是内置构造函数,当然其也是一个对象,所以JS是基于对象,而不是基于抽象类
就像下图的关系,可以理解为先有内置构造函数,实例出Objcet函数,Array函数等等内置函数
这些函数的原型对象都指向Function的原型,而Function的原型却又是Objcet的实例,所以最后所有函数的原型的原型对象
都会指向Object,是JS语言用构造函数模拟了面向对象的概念从而更有效的组织代码,也就是组件开发
例如页面上有一个轮播图效果,我们直接使用JQ或者原生JS面向过程直接写就可以,当页面有三个轮播图,就会出现代码混乱维护问题等等,
而面向对象的思维就可以很好解决这些问题。