ES6代理不能的功能呢?(ES6 proxies can't be functions?)

2019-09-28 00:36发布

这是否意味着文件是未来的JavaScript代理的实现不会有Proxy.createFunction ,我将无法创建一个可称为一个函数代理?

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-reflect-object

该反映的对象是一个普通的对象。

的值[[原型]]的反映对象的内部插槽是内置Object原型对象(19.1.3)的标准。

该反映的对象不是一个函数对象。 它不具有一个[[构建]]内部方法; 这是不可能使用反映物体的方式与新的运营商构造。 所述反映对象还没有一个[[调用]]内部方法; 因此不可能以调用反映对象作为功能。

Answer 1:

你所引用有关规范的部分Reflect对象,这意味着没有为代理。

该ES6在您链接确实还具有页面描述代理 。 这些对象可以是[[call]]能够 (甚至[[construct]]能 )。 你说得对,没有Proxy.createFunction ,所有代理似乎通过以下方式uniformely创建new Proxy 。 您将需要传递一个可调用对象(即函数)作为ProxyHandler用于创建一个可调用的代理对象。



文章来源: ES6 proxies can't be functions?