Web/04-JavaScript基础/27-面向对象概述.md
2021-11-16 17:25:05 +08:00

58 lines
1.8 KiB
Markdown
Raw 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.

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