问题 Chrome javascript代理对象未定义


我想试验EMCAScript 6中引入的Proxy对象,如本博文中所述: http://ariya.ofilabs.com/2013/07/es6-and-proxy.html

但是,当我想运行示例代码时:

var engineer = { name: 'Joe Sixpack', salary: 50 };

var interceptor = {
  set: function (receiver, property, value) {
    console.log(property, 'is changed to', value);
    receiver[property] = value;
  }
};

engineer = Proxy(engineer, interceptor);

我收到了代理未定义的错误。有没有人更了解Chrome中对代理的支持?我在Mac上使用Chrome版本33.0.1750.152。


8636
2018-04-11 13:20


起源



答案:


如果您使用Chrome,则大多数ES6功能都隐藏在功能切换后面。浏览到chrome:// flags,找到标题为“启用实验性JavaScript”的部分并启用它以启用支持:chrome:// flags / #enable-javascript-harmony

激活后,重新启动Chrome浏览器,它应该可以正常工作


7
2018-04-11 13:54



这在最新版本的Chrome中似乎不再起作用。 - Jonathan Schmidt
v8(Chrome背后的javascript引擎)人们实现了它,然后由于一些安全性的东西删除了它。他们现在正在重新实施它。 - Steel Brain


答案:


如果您使用Chrome,则大多数ES6功能都隐藏在功能切换后面。浏览到chrome:// flags,找到标题为“启用实验性JavaScript”的部分并启用它以启用支持:chrome:// flags / #enable-javascript-harmony

激活后,重新启动Chrome浏览器,它应该可以正常工作


7
2018-04-11 13:54



这在最新版本的Chrome中似乎不再起作用。 - Jonathan Schmidt
v8(Chrome背后的javascript引擎)人们实现了它,然后由于一些安全性的东西删除了它。他们现在正在重新实施它。 - Steel Brain


V8发布全面支持 Proxy 在4.9

资源; http://v8project.blogspot.de/2016/01/v8-release-49.html

Chrome 49使用V8 4.9


2
2018-02-26 12:56





只需从带有标志的命令行启动chrome --js-flags="--harmony-proxies" 或将其添加到chrome的快捷方式


1
2018-01-10 20:58





可以使用针对代理的Chrome专用垫片 https://github.com/anywhichway/chrome-proxy。如果您的需求是基本的,那么在v8团队完成重新实施之前,这应该可以帮到您。


-1
2018-02-04 12:48