新代理不适用于 Chrome 中的功能
new Proxy does not work on functions in Chrome
new Proxy(function() {}, {})
创建代理以监视函数在 Chrome 上不起作用。相反,它会抛出一个错误:
Uncaught illegal access
我想监视一个函数并在访问其属性时创建一个代理处理程序。在 Firefox 中看起来不错。有什么办法可以解决这个问题?
这是 Chrome devtools 控制台试图显示结果的问题,而不是 Proxy 构造函数本身。您使用的 Chrome 是什么版本?
在 Chrome 50 控制台中,我看到了这个:
> let p = new Proxy(function(){return 6},{})
< undefined
> p
< #<Function>
Uncaught illegal access
DebuggerScript.getFunctionScopes @ (program):4
> p()
< 6
所以功能代理工作得很好,但控制台显示它。应在最新的 Chrome 版本中修复。现在,您可以忽略该错误。
确实是因为@AndreasRossberg 回答了 Chrome 限制。
如果您在 Firefox 中使用相同的代码,它会正常工作并按预期输出:
> let p = new Proxy(function(){return 6},{})
< undefined
> p
< function ()
> p()
< 6
new Proxy(function() {}, {})
创建代理以监视函数在 Chrome 上不起作用。相反,它会抛出一个错误:
Uncaught illegal access
我想监视一个函数并在访问其属性时创建一个代理处理程序。在 Firefox 中看起来不错。有什么办法可以解决这个问题?
这是 Chrome devtools 控制台试图显示结果的问题,而不是 Proxy 构造函数本身。您使用的 Chrome 是什么版本?
在 Chrome 50 控制台中,我看到了这个:
> let p = new Proxy(function(){return 6},{})
< undefined
> p
< #<Function>
Uncaught illegal access
DebuggerScript.getFunctionScopes @ (program):4
> p()
< 6
所以功能代理工作得很好,但控制台显示它。应在最新的 Chrome 版本中修复。现在,您可以忽略该错误。
确实是因为@AndreasRossberg 回答了 Chrome 限制。 如果您在 Firefox 中使用相同的代码,它会正常工作并按预期输出:
> let p = new Proxy(function(){return 6},{})
< undefined
> p
< function ()
> p()
< 6