跟踪属性访问

190 阅读1分钟

跟踪属性访问

  • 通过捕获 get , sethas 等操作,可以知道对象属性什么时候被访问、被查询。把实现相应捕获器的某个对象代理放到应用中,可以监控这个对象何时在何处被访问过。

    const user = {
      name: "Jake",
    };
    const proxy = new Proxy(user, {
      get(target, property, receiver) {
        console.log(`Getting ${property}`);
        return Reflect.get(...arguments);
      },
      set(target, property, value, receiver) {
        console.log(`Setting ${property} = ${value}`);
        return Reflect.set(...arguments);
      },
    });
    proxy.name; // Getting name
    proxy.age = 27; // Setting age = 27