Object.defineProperty的功能就是在现有的属性进行修改或添加
let Person ={} Person.name = 'Tom'
等于
let Person = {} Object.defineProperty(Person, 'name',{ value: 'jack', configurable: false, writable: true, enumerable: false }) Person.name = 'Tom'
不同的是,
configurable属性 默认falise ,当是true的时候 name属性才能删除
writable属性 默认 false , 当是true的时候 name属性才允许修改
enumeravle属性默认 false, 当是true的时候 该属性可枚举
Object.defineProperty的存取描述符 get set
get属性是在属性读取的时候的函数
set属性是在属性写入的时候调用的函数