1.面向过程编程( Object Oriented Programming )
(1)面向过程编程就是分析出解决问题所需要的步骤,然后用一步一步实现,使用的时候再一个一个的依次调用就可以了。
举个例子:将大象装进冰箱,面向过程的做法
打开冰箱门 → 把大象装进去 → 关上冰箱门
面向过程就是按照我们分析好了的步骤,按照步骤解决问题。
面向过程的优点:
- 面向过程的性能比面向对象高
面向过程的缺点:
- 没有面向对象易维护,可复用性高,可扩展性高。
总结:如果我们要使用面向过程编程,就要分析出程序执行的步骤一步一步来。
2.面向对象编程( process-oriented programming )
面向对象,要先确立对象,然后找出它有什么功能,最后我们是作为调度者使用起来,所以我们面向对象是以对象和功能来划分问题,而不是步骤。
面向对象的优点:
- 灵活。
- 代码可复用。
- 容易维护和开发。
- 更适合多人合作开发大型项目。
面向对象的缺点:
- 性能比面向过程低
面向对象有三个典型的特性:
- 封装性
- 继承性
- 多态性( 比较俗粗的比喻:一个弱鸡亚手机你平常可以用它打电话,但是危机情况也可以用来打架。在不同的情况下可以有多种状态 )
总结:面向对象和面向过程都有自己的优缺点,具体情况具体分析,在合适的场景使用合适的方法,如果程序简单步骤明显推荐面向过程的做法,如果程序复杂,需要多人合作推荐使用面向对象的方法会更好些。
3.面向对象中的类
(1)类 class
在 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后一这个类来实例化对象。
类抽象了对象的公共部分,他泛指一大类。
对象是特指某一个,通过实例化一个具体的对象。
面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物。但是事物分为具体事务和抽象事物。
比如:手机(这里的手机就是一个抽象的说法,可以是多种,什么苹果手机,小米手机等等)。
比如:小米8(这里就是说具体的某一款手机)。
面向对象的思维特点:
- 第一步:抽取(抽象)对象共用的属性(比如:手机可以打电话,发短信,上网冲浪)和行为组织抽取出来封装成一个类(那这里的类就泛指手机类)。
- 第二步:我们就可以对手机类进行实例化获取类的对象,比如:想要一个安卓手机就可以通过这个类生成出来,想要苹果手机生产出一个苹果手机。
总结:面向对象编程我们考虑的是有哪些类,按照面向对象的思维特点,不断的创建对象,使用对象,指挥对象做事情。
(2)对象
现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。例如:一本书,一个人,可以是对象,一个数据库,一张网页,一个与远程服务器的连接也可以是“对象”。
在 Javascript 中,对象是一组无序的相关属性的方法的集合,所有的事务都是对象。例如字符串,数值,数组,函数等。
对象是由属性和方法组成的:
- 属性:事物的特征,在对象中使用属性(例如手机颜色: 可以是红色,黑色。手机屏幕尺寸:4寸,5寸,这些就可以称作属性**)**来表示。
- 方法:事物的行为,在对象中用方法(例如:手机可以打电话,发短信这些一致的功能**)**来表示
总结:对象一定是一个具体的事物。