new Proxy(function() {}, {})
创建代理以观看某项功能对Chrome无效。相反,它会抛出错误:
Uncaught illegal access
我想看一个函数,并在访问其属性时创建代理处理程序。在Firefox中看起来很好。有办法解决这个问题吗?
答案 0 :(得分: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
所以函数代理工作正常,但控制台barfs显示它。应修复最新的Chrome版本。现在,你可以忽略错误。
答案 1 :(得分:0)
确实正如@AndreasRossberg回答Chrome限制。 如果您在Firefox中使用相同的代码,它可以正常工作并按预期输出:
> let p = new Proxy(function(){return 6},{})
< undefined
> p
< function ()
> p()
< 6