31_Proxy计数器

本题考点:Proxy

根据题目要求,用Proxy代理一个对象,每当通过代理访问该对象拥有的属性时,“count”加1,当访问该对象没有的属性时,“count”减1,核心步骤有:

  1. 创建一个Proxy实例,该构造函数接收两个参数,第一个参数是被代理的对象,第二个参数是处理方法
  2. 在处理方法中设置“get”计算方法,该方法接收两个参数,第一个参数是被代理的对象,第二个参数是当前“get”读取的属性
  3. 当第二个参数在第一个参数中时,“count“加1,否则减1

参考答案

let count = 0
const _proxy = object => {
    let proxy = new Proxy(object, {
        get: function(target, propKey) {
            if(propKey in target) {
                count ++
            } else {
                count --
            }
        }
    })
    return proxy
}