let p =newProxy(target, handler);// `target` 代表需要添加代理的对象// `handler` 用来自定义对象中的操作
可以很方便的使用 Proxy 来实现一个数据绑定和监听
let onWatch =(obj, setBind, getLogger)=>{
let handler ={get(target, property, receiver){getLogger(target, property)return Reflect.get(target, property, receiver);},set(target, property, value, receiver){setBind(value);return Reflect.set(target, property, value);}};returnnewProxy(obj, handler);};
let obj ={ a:1}
let value
let p =onWatch(obj,(v)=>{
value = v
},(target, property)=>{
console.log(`Get '${property}'= ${target[property]}`);})
p.a =2// bind `value` to `2`
p.a // -> Get 'a' = 2