【问题标题】:Chrome javascript Proxy object is not definedChrome javascript代理对象未定义
【发布时间】:2014-04-11 13:20:52
【问题描述】:

我想尝试使用 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。

【问题讨论】:

    标签: javascript google-chrome proxy


    【解决方案1】:

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

    激活后,重启你的chrome浏览器,它应该可以工作了

    【讨论】:

    • 这在最新版本的 Chrome 中似乎不再适用。
    • v8(Chrome 背后的 javascript 引擎)人们实现了它,然后由于一些安全问题而将其删除。他们现在正在重新实施它。
    【解决方案2】:

    V8 在 4.9 中全面支持 Proxy

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

    Chrome 49 使用 V8 4.9

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        https://github.com/anywhichway/chrome-proxy 上提供了用于代理的 Chrome 特定 shim。如果您的需求是基本的,那么在 v8 团队完成重新实施之前,这应该可以帮助您解决问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-20
          • 2013-01-16
          • 1970-01-01
          • 1970-01-01
          • 2021-04-14
          • 1970-01-01
          • 2020-07-14
          相关资源
          最近更新 更多