JavaScript高级(1)——js面向对象

js面向对象

学习目标:

  • 能够说出什么是面向对象
  • 能够说出类和对象的关系
  • 能够使用class创建自定义类
  • 能够说出什么是继承

js面向对象编程介绍

面向对象编程介绍

两大编程思想

面向过程和面向对象

面向过程编程POP(Process-oriented programming)

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

举个例子
JavaScript高级(1)——js面向对象
面向过程:就是按照我们分析好的步骤,按照步骤解决问题

面向对象编程OOP(Object-oriented programming)

面向对象就是把事务分解成一个个对象,然后由对象之间分工与合作。
还是刚才那个那个例子:将大象装进冰箱,面向对象的做法:
先找出对象,并写出这些对象的功能:

  1. 对象1:大象;功能1:进去
  2. 对象2:冰箱;功能1:打开,功能2:关闭

最后想把大象装进冰箱,就可以使用大象和冰箱的功能

面向对象:面向对象是以对象的功能来划分问题,而不是步骤

在面向对象程序开发思想中,每一个对象都是功能中心,具有明确地分工。
面向对象编程具有灵活、代码可复用、容易维护和开发的优点,更适合多人合作的大型软件项目。

面向对象的特性:

  • 封装性
  • 继承性
  • 多态性

JavaScript高级(1)——js面向对象

面向过程和面向对象的对比

面向过程
  • 优点:性能比面向对象高,适合更硬件联系很紧密的东西,例如单片机就采用面向过程编程
  • 缺点:没有面向对象易维护、易复用、易扩展
面向对象
  • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
  • 缺点:性能比面向过程低

总结之总结:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭

ES6 中的类和对象

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

e.g.
抽象的事物(泛指的):手机
具体的事物(具体的):xx品牌手机

面向对象的思维特点:

  1. 抽取抽象对象共用的属性和行为组织(封装)成一个类(模板)
  2. 对类进行实例化,获取类的对象

面向对象编程我们考虑的是有哪些对象,按照面向对象的思维特点,不断的创建对象,使用对象,然后只会对象做事情

对象

现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。例如:一本书、一辆汽车、一个人