【问题标题】:Reference Error: Proxy is Not Defined参考错误:未定义代理
【发布时间】:2015-09-29 16:30:31
【问题描述】:

我正在尝试在我的 Angular 应用程序中使用 ES6 代理:

// Create defensive object using ES6 Proxy
createDefensiveObject(target) {

  return new Proxy(target, {

    get : (target, property) => {

      if(property in target) 
        return target[property];

      else
        throw new ReferenceError(`Property \"${property}\" does not exist`);
    }
  });
}

我正在使用 Traceur 转译 Chrome 中的所有内容,并且启用了实验性 JavaScript。我实现的所有其他 ES6 功能都按预期工作,但使用代理我得到:Reference Error: Proxy is not defined

有什么见解吗?

【问题讨论】:

    标签: google-chrome ecmascript-6 proxy-classes traceur


    【解决方案1】:

    参考this table here,Traceur 目前似乎不支持 ES6 代理。我用来转译后端代码的 Babel 也不支持。看起来 io.js 的支持有限,因此必须进行进一步研究以确定该解决方案是否适合我们的需求。虽然这对我的 Angular 前端没有帮助。

    【讨论】:

    • Proxy 是 ES6 的特性之一,遗憾的是不能 polyfill。
    • 我设法找到了一个名为 Harmony-reflect 的 polyfill,但 Chrome 对 Proxy 的支持为零,据我所知,除了启用一些 Chromium 标志之外。这对我的情况毫无用处。
    • 是的,这只会使旧代理遵循规范,但不幸的是,它不会添加对 Proxy 的支持。
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2021-07-15
    • 2014-07-25
    相关资源
    最近更新 更多