/**@zh 定义对象的属性
* @param obj 添加或者修改属性的对象
* @param prop 添加或修改的属性名
* @param desc 修改的配置项,一般是一个对象
*/
Object.defineproperty(obj, prop, desc)
对于desc,包含6个配置属性
writable: 是否可重写
value: 当前属性的值
enumerable: 是否可以被遍历到
configurable: 是否可再次修改配置项
get: 读取时内部调用的函数
set: 写入时内部调用的函数
注意:当使用了getter或setter方法,不允许使用writable和value这两个属性,get或set不是必须成对出现
get 是获取值的时候的方法,类型为 function ,默认为undefined
set 是设置值的时候的方法,类型为 function ,默认为undefined