forked from qianguyihao/Web
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9d9c4ca
commit 7d44e5a
Showing
10 changed files
with
935 additions
and
752 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
## 面向过程和面向对象 | ||
|
||
### 面向过程 | ||
|
||
**面向过程**:先分析好的具体步骤,然后按照步骤,一步步解决问题。 | ||
|
||
优点:性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。 | ||
|
||
缺点:没有面向对象易维护、易复用、易扩展。 | ||
|
||
### 面向对象 | ||
|
||
**面向对象**(OOP,Object Oriented Programming):以对象功能来划分问题,而不是步骤。 | ||
|
||
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。 | ||
|
||
缺点:性能比面向过程低。 | ||
|
||
### 面向对象的编程思想 | ||
|
||
面向对象的编程思想:对代码和数据进行封装,并以对象调用的方式,对外提供统一的调用接口。 | ||
|
||
比如说,当我们在开车的时候,无需关心汽车的内部构造有多复杂,对于大多数人而言,只需要会开、知道汽车有哪些功能就行了。 | ||
|
||
### 面向对象的特性 | ||
|
||
在面向对象程序开发思想中,每一个对象都是功能中心,具有明确分工。面向对象编程具有灵活、代码可复用、容易维护和开发的优点,适合多人合作的大型软件项目,更符合我们认识事物的规律。 | ||
|
||
面向对象的特性如下: | ||
|
||
- 封装性 | ||
|
||
- 继承性 | ||
|
||
- 多态性 | ||
|
||
## JS 中的面向对象 | ||
|
||
JS 中的面向对象,是基于**原型**的面向对象。 | ||
|
||
另外,在ES6中,新引入了 类(Class)和继承(Extends)来实现面向对象。 | ||
|
||
|
||
### 基于原型的面向对象 | ||
|
||
|
||
JS 中的对象(Object)是依靠构造器(constructor)和原型(prototype)构造出来的。 |
Oops, something went wrong.