4
new Proxy(function() {}, {})

関数を監視するためのプロキシの作成は、Chrome では機能しません。代わりに、エラーがスローされます。

Uncaught illegal access

関数を監視し、そのプロパティがアクセスされたときのプロキシ ハンドラーを作成したいと考えています。Firefoxでは問題ないようです。これを回避する方法はありますか?

4

2 に答える 2

5

これは、プロキシ コンストラクタ自体ではなく、結果を表示しようとする Chrome devtools コンソールの問題です。使用している Chrome のバージョンを教えてください。

Chrome 50 コンソールでは、次のように表示されます。

> let p = new Proxy(function(){return 6},{})
< undefined
> p
< #<Function>
Uncaught illegal access
  DebuggerScript.getFunctionScopes @ (program):4
> p()
< 6

したがって、関数プロキシは問題なく動作しますが、コンソール バーフはそれを表示します。最新の Chrome バージョンで修正する必要があります。今のところ、エラーは無視してかまいません。

于 2016-05-01T08:29:56.377 に答える
0

実際、@AndreasRossberg が Chrome の制限に答えたように。Firefox で同じコードを使用すると、正しく動作し、期待どおりに出力されます。

> let p = new Proxy(function(){return 6},{})
< undefined
> p
< function ()
> p()
< 6
于 2016-06-23T13:28:18.663 に答える