Object.defineProperty 毫无疑问字面上的意思就是 对象.定义属性
例如
let person ={
name:'zs',
sex:'man'
}
Object.defineProperty(person,'age',{
value:18
})
//等价于
let person ={
name:'zs',
sex:'man',
age:18
}
但是Object.defineProperty 这个就比较高级了
通过defineProperty 定义一个对象属性,这个属性就不会参与遍历(不可枚举)
可以用
Object.keys(person)
来获取那些键名,你会发现 通过defineProperty定义的会拿不出来
如果想让它可以遍历 则在配置项加 enumerable
可修改就添加 writable:true
可删除就添加 configurable :true
同步更新数据 get:function(){retuen xxx} 类似映射
还有其他的配置项可百度
Object.defineProperty(person,'age',{
value:18,
enumerable//可列举的
})