Babel 中的 Javascript 代理支持
Javascript Proxy support in Babel
我正在使用设置为阶段 0 的 babelify 版本 6.3.0。 ES6/ES7 工作得很好。 但是,当我尝试使用Javascript的代理功能时:
set product(product={}) {
this._product = new Proxy({}, {})
}
我得到:
ReferenceError: Can't find variable: Proxy
有什么想法吗?
来自 Babel 网站:
由于 ES5 的限制,代理无法转译或填充。请参阅各种 JavaScript 引擎中的支持。
您无法使用所有陷阱代理完整对象,但至少可以为 get 和 set 创建代理属性。
var proxy = {}
Object.defineProperty(proxy, 'a', {
get: function() { return bValue; },
set: function(newValue) { bValue = newValue; }
});
您甚至可以将其包装在方法周围
function proxyVar(obj, key, initVal) {
Object.defineProperty(obj, key, {
get: function() { return bValue*2; },
set: function(newValue) { bValue = newValue; }
value: initVal
});
}
然后:
var proxy = {}
proxyVar(proxy, 'a', 10)
console.log(proxy.a) // prints 20
proxy.a = 20
console.log(proxy.a) // prints 40
Babel 将 ES6/ES7 代码(假设您已连接适当的预设)转换为有效的 ES5 代码。
恐怕没有办法通过 ES6 语法表达 ES5 代理。
您可以看到代理在 es6 功能站点上没有任何等效项。在 Babel 文档的"代理"部分的底部也有关于它的警告。
相关文章:
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- jQuery检测浏览器是否支持Zoom
- 错误:对象没有't支持'自动完成'
- EmberJS中支持单字母单词模型
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- Internet Explorer缺少占位符支持,特别是密码字段
- 为什么我得到错误IE修剪方法是't支持
- 任何浏览器都不支持javascript函数
- GTK百老汇支持同时连接
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- 对象没有'不支持set_viewXML
- Javascript Q库浏览器支持
- 您的平台不支持RxJS-Array.observe
- 检测用户代理是否支持弹出窗口
- Babel 中的 Javascript 代理支持
- Phantomjs 抛出“此页面使用框架,但您的浏览器不支持它们”错误,即使在设置了正确的用户代理后也是如此
- Extjs数据模型/存储是否支持任何包装代理构建器方法?
- 数据库支持的输入字段的代理筛选器值