什么是面向过程

  • 分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
  • 是一种以过程为中心的编程思想 代码没有任何封装,按照编码的逻辑 自上而下 平铺直叙。

    什么是面向对象

  • 是把构成问题的事务分解成各个对象,每个对象都有自己独立的属性和行为, 对象可以将整个问题事务进行分工, 不同的对象做不同的事情。

  • 是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心。

    es5 构造函数

    1. function person(){} || function Person(){}
    2. new person() || new Person()
    3. //由于普通函数的函数名首字母也是小写
    4. //为将普通函数和构造函数做区分
    5. //构造函数的首字母大写----通俗约定

    es6 class类

    1. class Person{}

    两者的优缺点

    面向过程

  • 面向过程是一种自顶而下的编程思想,将要实现的功能划分为小的模块,再将小的模块继续细分,当所有模块都写完,功能也就实现。

  • 优点
  • 1.运行效率高,因为与CPU的工作方式接近,CPU就是按照顺序来一步一步执行的。
  • 2.编程效率高,不需要对功能进行复杂的抽象,直接进行划分就好,只不过模块划分的粒度和划分原则需要把控好,这也是架构师的重要职责之一
  • 缺点
  • 1.程序扩展性和灵活性比较差,如果功能有改动,对程序会进行较大的改动,而且由于很多地方会改动,不能快速适应需求的变化
  • 2.数据存在很多工程共享数据,安全性不好

    面向对象

  • 面向对象的编程思想是先根据要实现的功能,抽象出对象,或者说类,然后赋予对象相应的数据和操作,功能的实现依靠对象的方法调用。

  • 优点
  • 1.安全,面向对象的封装特性会将数据进行隐藏,保证数据的安全。
  • 2.扩展性好,需求的更改会体现在某个对象的或某些对象的修改上,因此只需要做局部的修改就好,不会对全局造成影响。
  • 3.复用,代码冗余小。由于继承的特性,代码量得到了很大的缩减,重写的特性又保证了多态,即灵活性
  • 缺点
  • 1.抽象相对复杂,不如直接写功能模块方便