上篇文章我们讲了基本的原理,接下来我们来讲一下,什么是数据代理。
数据代理就是:通过一个对象代理另一个对象中属性的操作(读/写)
举个例子:
<script>
let obj = {name:'张三'}
let obj2 = {age:19}
Object.defineProperty(obj2,'name',{
get(){
return obj.name
},
set(value){
obj.name = value
}
})
</script>
利用Object.defineProperty来给obj2追加一个name属性。
name当访问obj2的nem属性的时候。就会调用get方法。这个方法就是返回obj.nem给obj2.name。
set也是同理,set会收到一个value值。value就是修改的值。
把obj.name = value 就会在修改的时候调用方法,这个方法就是把修改的值赋值给obj.name
如图:
以上就是简单的一个数据代理的例子。