对象的属性分为数据属性和访问器属性.
对象的属性在创建的时候都会包含一些特性.
数据属性包含的特性包括:
configurable:属性是否可配置,是否可以通过delete删除该属性
writable:是否可操作
value:属性的值
enumerable:属性是否可枚举
访问器属性包含的特性包括:
configurable:是否可配置,是否可以通过delete删除该属性
writable:是否可操作
set:对该属性进行设置值
get:获取到该属性的值.
Object.defineProperty方法可以修改属性的状态.
Object.definePropery方法接收三个参数
target:要定义属性的目标对象
property:要定义的属性
descriptor:描述属性的特性的一个对象(该对象只能包含对应属性的特性)
Object.getOwnPropertyDescriptor方法可以获取属性的对象描述符