new Proxy(function() {}, {})
创建代理来观看函数在 Chrome 上不起作用。相反,它会引发错误:
Uncaught illegal access
我想观察一个函数并在访问它的属性时创建一个代理处理程序。在 Firefox 中似乎很好。有什么办法可以解决这个问题?
new Proxy(function() {}, {})
创建代理来观看函数在 Chrome 上不起作用。相反,它会引发错误:
Uncaught illegal access
我想观察一个函数并在访问它的属性时创建一个代理处理程序。在 Firefox 中似乎很好。有什么办法可以解决这个问题?
这是 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 版本中修复。现在,您可以忽略该错误。
事实上,@AndreasRossberg 回答了 Chrome 的限制。如果您在 Firefox 中使用相同的代码,它可以正常工作并按预期输出:
> let p = new Proxy(function(){return 6},{})
< undefined
> p
< function ()
> p()
< 6