对象的第一层:
1、对象:属性的无序集合
2、每个属性:都是一个名值对。
属性名:是包含空字符串在内的任意字符串。值:可以是任意JavaScript值,或者可以是一个getter或setter函数(或两者都有)。
3、每个属性还有一些与之相关的值,
称为属性特性:可写(是否可以配置该属性的值)。可枚举(是否可以通过for/in循环返回该属性)。可配置(是否可以删除修改该属性)。
在ECMAScript5之前,通过代码给对象创建的所有属性都是可写的、可枚举的和可配置的。在ECMAScript5中可以对这些特性加以配置。
4、对象:拥有三个相关的对象特性。
对象的原型(指向另外一个对象,本对象的属性继承自它的原型对象)
对象的类(是一个标识对象类型的字符串)
对象的扩展标记(指明了是否可以向该对象添加新属性)
5、三类对象和两类属性:
内置对象:例如数组、函数、日期和正则表达式。由ECMAScript规范定义的对象或类。
宿主对象:由JavaScript解释器所嵌入的宿主环境定义的。客户端Javascript中表示网页结构的HTMLElement对象均是宿主对象。
既然宿主环境定义的方法可以当成普通的Javascript函数对象,那么宿主对象也可以当成内置对象。
自定义对象:由运行中的Javascript代码创建的对象。
自有属性:直接在对象中定义的属性。
继承属性:在对象的原型对象中定义的属性。