ECMAScript将对象定义为无序属性的集合,其属性可以包含基本值、对象或者函数。每个对象都是基于一个引用类型创建的,这个引用类型可以是第五章(引用类型那章)讨论的原生类型也可以是开发人员定义的类型。
一、理解对象
1.1属性类型
1.数据类型
- 定义:数据类型包含一个数据值的位置,这个位置可以读取和写入值。
[Configurable]:能否通过delete删除属性并重新定义属性,能否修改属性的特性或能否把属性改成访问器属性。
[Enumerable]:能否通过for-in属性循环返回属性。
[Writable]:表示能否修改属性的值。
[Value]:包含这个属性的数据值。 - 要修改这些属性的默认特性,需使用
Object.defineProperty()方法,该方法接收三个参数,分别为属性所存在的对象、属性的名字、一个描述符对象。
2.访问器类型
- 包含getter和setter函数。
getter:在读取访问器属性时,该函数负责返回有效的值
setter:在写入访问器属性时,该函数负责如何处理数据 - 访问器属性的四个特性:
[Configurable]:能否通过delete删除属性从而重新定义属性、能否修改属性的特性、能否把属性修改为数据特性。
[Ebumerable]:能否通过for-in循环属性。
[Get]:在读属性时调用的函数。
[Set]:在写入属性时调用的函数。