
上QQ阅读APP看书,第一时间看更新
2-11 对象简介
ECMAScript中的引用类型实际上指的就是对象。对象是一组功能行为互补的数据集合,其可以用来模拟实现生活中的事物。举一个简单的例子,如果要开发一款教学系统,这个系统中需要包含老师和学生两类成员。其中,老师就是一种对象,学生也是一种对象。老师对象中可能会包含姓名、教师编号、专业、所带班级等,学生对象中可能会包含姓名、年龄、所学课程、所在班级等。当然,除了这些描述对象属性的数据外,对象中还需要包含一些行为,例如老师要进行教学、学生要学习考试等。在ECMAScript中,Object类型就是这样一种引用类型,其创建出来的实例被称为对象。
对象的创建有两种方式,第一种,可以直接通过Object构造方法来新建对象。以教师对象为例,代码如下:

上面的代码为教师对象添加了姓名、年龄和所教科目的属性,并且为其添加了一个教学行为teach的方法。
第二种,也可以直接通过字面值的方式来创建教师对象,示例如下:

如果将teacher对象与teacher2对象的类型都进行打印,可以看到它们都是Object类型,例如:

要使用对象的某个属性,有两种方式可以获取,比较方便且常用的方式是点语法,示例如下:

也可以通过键名字符串的方式来获取对象的属性,示例如下:

需要注意,通过键名字符串的方式来取对象的属性时,所传入的键必须是字符串类型的。
对象中定义的函数用来描述对象的行为,同样可以使用点语法来使对象执行行为,示例如下:

同样,使用键名获取到的方法也可以执行:

至此,我们可以简单理解,万事万物都可以作为对象(但并不是全部)。基本的数据组合为简单的对象,简单的对象组合成复杂的对象,复杂的对象协作完成复杂的功能。这里,对于“对象”我们不做深入的研究,后面会详细介绍更加复杂的面向对象机制。