私はES6を学んでいて、プロキシオブジェクトを見つけました。全体として、実際にどのように機能するかを理解しました。しかし、プロキシの使用に関する私の質問。添付した例のように、プロキシはユーザー オブジェクトから作成されます。プロキシで発生するイベントを「リッスン」または「トラップ」するには、プロキシ オブジェクトを使用する必要がありますが、それは私が望んでいるものではありません。元の(ユーザー)オブジェクトで発生するイベントを「聞く」方法はありますか?
let user = {};
let proxy = new Proxy(user, {
get(target, prop) {
alert(`Reading ${prop}`);
return target[prop];
},
});
proxy.firstName; // Reading firstName
明確にするために、状況を想像してみましょう: 正しく動作しないオブジェクトがあります。何が問題なのかを理解し、プロキシを作成したいと思います。では、次のコードでは、元の正しく動作しないオブジェクトの代わりにプロキシを使用する必要がありますか? したがって、この問題の解決策を見ると、次のように機能するはずです。
let user = {} // wrong-working object
let proxy = new Proxy(user, {
get(target, prop) {
alert(`Reading ${prop}`);
return target[prop];
},
}); // new Proxy returns proxy which is just used for removing "event-listener"
user.firstName // Reading firstName
なぜこのように機能するのか、説明を得ることができますか?