Object.defineProperty的使用
代码:
//模拟代理
let obj = {}
let data = {msg:'Hello World'}
Object.defineProperty(obj,'msg',{
get(){
//获取obj的msg这个属性的时候,会被get方法劫持
return data.msg
},
set(val){
//对obj的msg这个属性修改的时候,会被set方法劫持,通过val(变量名自己命名)来获取
data.msg = val
}
})
console.log(obj.msg) //Hello World
data.msg = 'heihei'
console.log(obj.msg) //heihei
obj.msg = 'hello'
console.log(data.msg) //heLlo
Object.defineProperty的作用
对一个数据进行添加和修改属性,并且返回这个对象
参数1:绑定的对象
参数2:需要添加或修改的属性
参数3:目标所拥有的特性