面向对象编程简介
JavaScript中的面向对象编程入门
背景
在本课程中,我们学习了原始类型和对象。我们了解到每个对象都具有一组唯一的属性和方法。例如,每个数组对象都有诸如 length 这样的属性或方法。如果我们想要创建自定义的对象类,或者实现其他有趣的功能,就需要使用面向对象编程。
面向对象编程简介
面向对象编程(OOP)是一种编程风格,而不是一种工具。尽管历史悠久,但它仍然非常流行并被广泛使用。这种编程风格的核心思想是将程序分解为多个可以相互通信的对象。每个对象由其自身的属性集合来定义,这些属性可以通过各种操作进行访问和修改。
其他语言中的 OOP
像 C++、Java 和 C# 这样的语言使用关键字 class 来定义一个类。一个类为该类的每一个实例提供了属性和方法。
注意: 如果你移除
class关键字,代码将无法编译,从而产生错误。
在这种情况下,类充当对象的蓝图。或者说,对象是这个类的一个实例。
JavaScript 中的 OOP
在 JavaScript 中,实现 OOP 有两种方式:基于原型 和 基于类。
基于原型的编程
在引入 ES2015 版本之前(甚至之后),JavaScript 一直依赖于基于原型的编程。在这种编程模式中,对象 封装了其属性、方法 和 数据,而不是通过类来组织。你可以随时向这个对象添加新的属性。对象本身就可以是一个独立的实体,而不必是某个类的实例;如果你需要一个对象,可以直接创建,而无需先定义类。
基于类的编程
基于类的编程 是在 JavaScript 的 ES2015 版本中引入的,它允许在实现中使用 class 关键字。此外,它还支持继承,并通过 constructor、extend、super 和 static 等关键字来实现 OOP。这种新语法更加清晰易用。
注意: 基于原型和基于类的编程在底层实现上是相同的,两者仅在语法层面存在差异。
在接下来的课程中,我们将分别介绍这两种方法,并学习实现 OOP 时的具体语法。