面向对象
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念
-
和面向过程一样,都是一种编程思想;(万物皆对象)
-
JS本身也是一门面向对象的语言; js就是基于面向对象的编程思想构造出来的;
-
我们经常去研究一些JS的内置类(Number,String,Object,Array,Promise…),那么这些类都是基于面向对象创建出来的;
-
平时开发的时候经常去操作这些内置类的实例,通过自习研究这些实例的一些共同的属性和方法;
-
通过总结这些实例上的一些属性和方法来把他们共同的分成一个类,然后进行开发,之后把他们进行总结,这就是对于面向对象编程的一种应用;
-
当然,我们平常使用一些框架(jq/VUE/REACT/ANGULAR/WEPY/UNIAPP),他们都是基于面向对象的,我看过vue的源码,发现这些源码也是通过面向对象编程思想创建出来的
-
在现实中,往往我们都是在写过程,除非自己封装一些组件或者插件还有类(API,全局loading,轮播图,分页器,dialog,$ajax),这个时候就要用到面向对象编程了
-
JS中的面向对象和后端语言常见的面向对象稍微有些不同,JS中的类和实例是基于原型和原型链机制来处理的.
-
类: Class(构造函数)
-
封装: 高内聚低耦合
-
继承: 子类 实例 继承父类的属性和方法(主要将继承学习一下)
-
多态:
重写 修改已有的属性和方法
重载 JS本身是没有重载的,重载对于客户端代码来说是没有必要的,我们可以通过arg或者其他的一些情况判断来实现重载效果