4

オブジェクトゲッターをプロキシでオーバーライドすることにより、ゲッター経由でアクセスされているノードを出力しようとしています。この大きなオブジェクトのどの部分がアプリケーションで使用されていないかを基本的にテストしようとしています。私が抱えている問題は、ゲッターの親が何であるかを特定する方法を追加できることです。これが私がこれまでに持っているものです

function tracePropAccess(obj) {
  return new Proxy(obj, {
    get(target, propKey, receiver) {
      console.log("Get fired on ", propKey);
      return Reflect.get(target, propKey, receiver);
    }
  });
}

const testObj = {
  a: 1,
  b: {
    a: "no",
    b: "yes"
  },
  c: {
    a: "green",
    b: {
      a: "blue",
      b: "orange"
    }
  }
};

const tracer = tracePropAccess(testObj);

tracer.b.a;

tracer.a;

tracer.c.c.a;

これは prop キーを表示するのに非常に役立ちますが、これは最初のレベルのキーにすぎません。この単一の関数が提供されたオブジェクトのすべてのプロキシをオーバーライドするため、このプロキシでこれにアプローチする方法がわかりません。オブジェクトの親/子を渡す方法はありますか? おそらく私もこれに間違って取り組んでいます-そのため、入力を探しています。ありがとう!

4

1 に答える 1