Webcourse/04-JavaScript基础/25-面向对象概述.md
2020-07-04 20:37:20 +08:00

50 lines
1.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 面向过程和面向对象
### 面向过程
**面向过程**先分析好的具体步骤然后按照步骤一步步解决问题
优点性能比面向对象高适合跟硬件联系很紧密的东西例如单片机就采用的面向过程编程
缺点没有面向对象易维护易复用易扩展
### 面向对象
**面向对象**OOPObject Oriented Programming以对象功能来划分问题而不是步骤
优点易维护易复用易扩展由于面向对象有封装继承多态性的特性可以设计出低耦合的系统使系统 更加灵活更加易于维护
缺点性能比面向过程低
### 面向对象的编程思想
面向对象的编程思想对代码和数据进行封装并以对象调用的方式对外提供统一的调用接口
比如说当我们在开车的时候无需关心汽车的内部构造有多复杂对于大多数人而言只需要会开知道汽车有哪些功能就行了
### 面向对象的特性
在面向对象程序开发思想中每一个对象都是功能中心具有明确分工面向对象编程具有灵活代码可复用容易维护和开发的优点适合多人合作的大型软件项目更符合我们认识事物的规律
面向对象的特性如下
- 封装性
- 继承性
- 多态性
## JS 中的面向对象
JS 中的面向对象是基于**原型**的面向对象
另外在ES6中新引入了 Class和继承Extends来实现面向对象
### 基于原型的面向对象
JS 中的对象Object是依靠构造器constructor和原型prototype构造出来的