以下のように`Function`をProxyしてみたとする。Function = new Proxy(Function, { apply(target, thisArg, args) { console.log("[Proxy] Function constructor usage detected:", args); return Reflect.apply(target, thisArg, args); } });-- `new` を使う ------------------------------------- `new`を使うとProxyを通過せず、元の`Function`を使用する。new Function("console.log('Test1')")(); new window.Function("console.log('Test2')")();-- `new` を使わない場合(Proxyを通過する) ----------------- `new`を除くと、Proxyを通過するため、Proxy内の `console.log("[Proxy] Function constructor usage detected:", args);` が実行される。Function("console.log('Test11')")(); window.Function("console.log('Test12')")();-- `new` を使わない場合(Proxyを通過しない) -----------------(()=>{}).constructor("console.log('Test()=>{}')")(); [].constructor.constructor("console.log('Test[]')")();