1. 面向对象术语
1.1. 对象
1.1.1. JavaScript把对象(object)定义为"属性的无序集合, 每个属性存放一个原始值、对象或函数"。
1.1.2. 在JavaScript中, 对象由属性(attribute)构成, 属性可以是原始值, 也可以是引用值。如果属性存放的是函数, 它将被看作对象的方法(method), 否则该属性被看作对象的属性(property)。
1.2. 类: 每个对象都由类定义, 可以把类看做对象的配方。类不仅要定义对象的接口(interface)(开发者访问的属性和方法), 还要定义对象的内部工作(使属性和方法发挥作用的代码)。编译器和解释程序都根据类的说明构建对象。
1.3. 实例: 程序使用类创建对象时, 生成的对象叫作类的实例(instance)。对类生成的对象的个数的唯一限制来自于运行代码的机器的物理内存。每个实例的行为相同, 但实例处理一组独立的数据。由类创建对象实例的过程叫做实例化(instantiation)。
2. 面向对象语言的要求
2.1. 一种面向对象语言需要向开发者提供四种基本能力:
- 封装: 把相关的信息(无论数据或方法)存储在对象中的能力
- 聚集: 把一个对象存储在另一个对象内的能力
- 继承: 由另一个类(或多个类)得来类的属性和方法的能力
- 多态: 编写能以多种方式运行的函数或方法的能力
2.2. JavaScript支持这些要求, 因此可被是看做面向对象的。