javascript 面向对象编程 OOP

540 阅读4分钟

1.面向过程编程( Object Oriented Programming )

(1)面向过程编程就是分析出解决问题所需要的步骤,然后用一步一步实现,使用的时候再一个一个的依次调用就可以了。

举个例子:将大象装进冰箱,面向过程的做法
打开冰箱门 → 把大象装进去 → 关上冰箱门
面向过程就是按照我们分析好了的步骤,按照步骤解决问题。

面向过程的优点:

  1. 面向过程的性能比面向对象高

面向过程的缺点:

  1. 没有面向对象易维护,可复用性高,可扩展性高。

总结:如果我们要使用面向过程编程,就要分析出程序执行的步骤一步一步来。

2.面向对象编程( process-oriented programming )

面向对象,要先确立对象,然后找出它有什么功能,最后我们是作为调度者使用起来,所以我们面向对象是以对象和功能来划分问题,而不是步骤。

面向对象的优点:

  1. 灵活。
  2. 代码可复用。
  3. 容易维护和开发。
  4. 更适合多人合作开发大型项目。

面向对象的缺点:

  1. 性能比面向过程低

面向对象有三个典型的特性:

  1. 封装性
  2. 继承性
  3. 多态性( 比较俗粗的比喻:一个弱鸡亚手机你平常可以用它打电话,但是危机情况也可以用来打架。在不同的情况下可以有多种状态 )

总结:面向对象和面向过程都有自己的优缺点,具体情况具体分析,在合适的场景使用合适的方法,如果程序简单步骤明显推荐面向过程的做法,如果程序复杂,需要多人合作推荐使用面向对象的方法会更好些。

3.面向对象中的类

(1)类 class

在 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后一这个类来实例化对象。

类抽象了对象的公共部分,他泛指一大类。

对象是特指某一个,通过实例化一个具体的对象。

面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物。但是事物分为具体事务和抽象事物。

比如:手机(这里的手机就是一个抽象的说法,可以是多种,什么苹果手机,小米手机等等)。

比如:小米8(这里就是说具体的某一款手机)。

面向对象的思维特点:

  • 第一步:抽取(抽象)对象共用的属性(比如:手机可以打电话,发短信,上网冲浪)和行为组织抽取出来封装成一个类(那这里的类就泛指手机类)
  • 第二步:我们就可以对手机类进行实例化获取类的对象,比如:想要一个安卓手机就可以通过这个类生成出来,想要苹果手机生产出一个苹果手机。

总结:面向对象编程我们考虑的是有哪些类,按照面向对象的思维特点,不断的创建对象,使用对象,指挥对象做事情。

(2)对象

现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。例如:一本书,一个人,可以是对象,一个数据库,一张网页,一个与远程服务器的连接也可以是“对象”。

在 Javascript 中,对象是一组无序的相关属性的方法的集合,所有的事务都是对象。例如字符串,数值,数组,函数等。

对象是由属性和方法组成的:

  • 属性:事物的特征,在对象中使用属性(例如手机颜色: 可以是红色,黑色。手机屏幕尺寸:4寸,5寸,这些就可以称作属性**)**来表示。
  • 方法:事物的行为,在对象中用方法(例如:手机可以打电话发短信这些一致的功能**)**来表示

总结:对象一定是一个具体的事物。