思路:Proxy虽然是代理,但是本质还是对原对象进行操作,所以要结合Reflect使用,才是真正的不再对原对象进行直接操作,而且Reflect有返回值。
<script type="text/javascript">
let count = 0
const _proxy = object => {
const objectProxy=new Proxy(object,{
get(target,prop,receiver){
const isSuccess=Reflect.get(target,prop,receiver)
if(prop in target)
count++
else
count--
}
})
return objectProxy
}
</script>
总结:Proxy是js中的内置对象,允许在访问对象之前对其进行拦截和定制,使用new Proxy(被拦截的对象,处理方法)。Reflect是js中的静态方法集合,其提供了对对象的常见操作的封装,Reflect.get(obj, key)可以得到对象obj中键key对象的值。



京公网安备 11010502036488号