前言
对象初始化
能够通过 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()