# 题目描述

请补全JavaScript代码,请给参数对象添加拦截代理功能,并返回这个代理,要求每当通过代理调用该对象拥有的属性时,"count"值加1,否则减1

# 思路

Proxy虽然是代理,但是本质还是对原对象进行操作,所以要结合Reflect使用,才是真正的不再对原对象进行直接操作,而且Reflect有返回值。

Proxyjs中的内置对象,允许在访问对象之前对其进行拦截和定制,使用new Proxy(被拦截的对象,处理方法)

Reflectjs中的静态方法集合,其提供了对对象的常见操作的封装,Reflect.get(obj, key)可以得到对象obj中键key

# 代码实现

const _proxy = (object) => {
// 补全代码
let proxy = new Proxy(object, {
  get(target, prop) {
    const isSuccess = Reflect.get(target, prop);
    if (prop in target) {
      count++;
    } else {
      count--;
    }
  },
});
return proxy;
1
2
3
4
5
6
7
8
9
10
11
12
13