1.使用代理
基本语法
const p = new Proxy(target,handler);
let object = {
text:1,
text2:2,
}
const handler = {
get:(obj,key) =>{
console.log(obj)
return key in obj ? obj[key]: undefined
}
}
const p1 = new Proxy(object,handler)
console.log(p1.text)
2. 可以撤销的代理对象
基本语法
const { proxy,revoke } = Proxy.revocable(target,handler)
Proxy.revocable(target,handler),和new Proxy()没有什么区别,只是可以撤销revoke(),然后不能再使用代理。
继续使用上面的案例,使用解构语法拿到Proxy,revoke方法并使用代理
· const { proxy,revoke } = Proxy.revocable(object,handler)
console.log('proxy:',proxy)
console.log(proxy.text)
// 调用撤销方法
revoke()
// 这时候再次使用代理对象将会失效
console.log(proxy.text)