什么是面向过程
- 分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
是一种以过程为中心的编程思想 代码没有任何封装,按照编码的逻辑 自上而下 平铺直叙。
什么是面向对象
是把构成问题的事务分解成各个对象,每个对象都有自己独立的属性和行为, 对象可以将整个问题事务进行分工, 不同的对象做不同的事情。
是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心。
es5 构造函数
function person(){} || function Person(){}
new person() || new Person()
//由于普通函数的函数名首字母也是小写
//为将普通函数和构造函数做区分
//构造函数的首字母大写----通俗约定
es6 class类
class Person{}
两者的优缺点
面向过程
面向过程是一种自顶而下的编程思想,将要实现的功能划分为小的模块,再将小的模块继续细分,当所有模块都写完,功能也就实现。
- 优点
- 1.运行效率高,因为与CPU的工作方式接近,CPU就是按照顺序来一步一步执行的。
- 2.编程效率高,不需要对功能进行复杂的抽象,直接进行划分就好,只不过模块划分的粒度和划分原则需要把控好,这也是架构师的重要职责之一
- 缺点
- 1.程序扩展性和灵活性比较差,如果功能有改动,对程序会进行较大的改动,而且由于很多地方会改动,不能快速适应需求的变化
-
面向对象
面向对象的编程思想是先根据要实现的功能,抽象出对象,或者说类,然后赋予对象相应的数据和操作,功能的实现依靠对象的方法调用。
- 优点
- 1.安全,面向对象的封装特性会将数据进行隐藏,保证数据的安全。
- 2.扩展性好,需求的更改会体现在某个对象的或某些对象的修改上,因此只需要做局部的修改就好,不会对全局造成影响。
- 3.复用,代码冗余小。由于继承的特性,代码量得到了很大的缩减,重写的特性又保证了多态,即灵活性
- 缺点
- 1.抽象相对复杂,不如直接写功能模块方便