对象:无序属性的集合,其属性可以包含基本值、对象或者函数。
下述为对象的两种写法:
每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型(Object、Array和Date等),也可以是开发人员自定义的类型(即function)。
-->因为ECMAScript中没有类的概念,因此它的对象也于基于类的语言中的对象有所不同。(所以上述的原生类型和自定义类型我们可以想象它就是类(即class))
ECMAScript中有两种属性:数据属性和访问器属性。
==》数据属性:
[[Configurable]] [[Enumerable]] [[Writable]] [[Value]]
要修改属性默认的特性,必须使用Object.defineProperty()方法。
Object.defineProperty()方法接收三个参数:属性所在的对象、属性的名字和一个描述符对象。
==>访问器属性:
[[Configurable]] [[Enumerable]] [[Get]] [[Set]]
同上,访问器属性不能直接定义,必须使用Object.defineProperty()来定义。
_year前面的下划线是一种常用的符号,用于表示只能通过对象方法访问的属性!!!
_defineGetter()和_defineSetter()
==》定义多个属性(Object.defineProperties()):
==》读取属性的特性(Object.getOwnPropertyDescriptor()):