学习第三天(2019-11-16)
第六章 面向对象的程序设计 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”可以把这里的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数。 1、对象的属性类型 ECMAScript中有两种属性:数据属性和访问器属性。 a:数据属性 数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有4个描述其行为的特性。 [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特 性,或者能否把属性修改为访问器属性,默认值为 true。 [[Enumerable]]:表示能否通过 for-in 循环返回属性,默认值为 true。 [[Writable]]:表示能否修改属性的值,默认值为 true。 [[Value]]:包含这个属性的数据值,默认值为 undefined。 要修改属性默认的特性,可以使用 ECMAScript 5的Object.defineProperty()方法。这个方法 接收三个参数:属性所在的对象、属性的名字和一个描述符对象。 b:访问器属性 访问器属性不包含数据值,它们包含一对儿 getter和 setter函数(这两个函数不是必须的)。在读取访问器属性时,会调用 getter函数,这个函数负责返回有效的值; 在写入访问器属性时,会调用 setter函数并传入新值