前言
对象初始化
能够通过new Object(),Object.create()办法,或者应用字面量标记(初始化标记)初始化对象。
object.create()
是应用指定的原型proto对象及其属性propertiesObject去创立一个新的对象。
简略实现
new Object()
new 运算符是创立一个自定义对象或者具备构造函数的内置对象的实例
应用new运算符会创立一个新的对象,它继承自构造函数的prototype,也就是说它的__proto__属性会指向构造函数的prototype
new Object() 也就是具备构造函数的内置Object的实例,新创建的对象的__proto__属性会指向Object的prototype
字面量标记
字面量形式申明的对象 除了用对象点(.)的形式 还能够利用ES5提供的Object.defineProperty定义对象属性(数据属性和拜访器属性)
数据属性
1、configurable:示意是否通过delete删除属性从而从新定义属性,是否批改属性的个性,或者是否把属性批改为拜访器属性,默认值为false,对于间接定义在对象上的属性默认值为true
2、enumerable:示意是否通过for in循环拜访属性,默认值为false,对于间接定义在对象上的属性默认值为true
3、writable:示意是否批改属性的值。默认值为false,对于间接定义在对象上的属性默认值为true
4、value:蕴含这个属性的数据值。默认值为undefined
拜访器属性
1、configurable:示意是否通过delete删除属性从而从新定义属性,是否批改属性的个性,或者是否把属性批改为拜访器属性,默认值为false,对于间接定义在对象上的属性默认值为true
2、enumerable:示意是否通过for in循环拜访属性,默认值为false,对于间接定义在对象上的属性默认值为true
3、get:在读取属性时调用的函数,默认值为undefined
3、set:在写入属性时调用的函数,默认值为undefined
** 备注:
定义多个对象属性办法: Object.defineProperties( )
读取对象某个属性个性的办法: Object.getOwnPropertyDescriptor( )
读取对象所有属性个性的办法: Object.getOwnPropertyDescriptors( )