在js中我们可以调用Object.definProperty()给对象绑定属性,当读取绑定的属性是,get函数就会被调用,当修改绑定的属性时,set函数会被调用,这样就形成了数据代理。
<!-- 数据代理:通过一个对象代理对另一个对象中属性的操作(读/写) -->
<script>
let obj = {x:100}
let obj2 = {y:200}
Object.defineProperty(obj2,'x',{
//当有人读取person的age属性时,get函数就会被调用,且返回值就是age的值
get(){
return obj.x
},
//当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值
set(value){
obj.x = value
}
})
</script>