All*_*ate 22 javascript proxy babeljs
我正在使用babelify版本6.3.0设置为第0阶段.ES6/ES7工作得很好.但是当我尝试使用Javascript的代理功能时:
set product(product={}) {
this._product = new Proxy({}, {})
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
ReferenceError: Can't find variable: Proxy
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Mik*_*uck 30
来自Babel网站:
由于ES5的限制,代理不能被转换或填充.请参阅各种JavaScript引擎中的支持.
您不能用所有陷阱代理一个完整的对象,但您至少可以为 get 和 set 创建代理属性。
var proxy = {}
Object.defineProperty(proxy, 'a', {
get: function() { return bValue; },
set: function(newValue) { bValue = newValue; }
});
Run Code Online (Sandbox Code Playgroud)
你甚至可以把它包装在一个方法周围
function proxyVar(obj, key, initVal) {
Object.defineProperty(obj, key, {
get: function() { return bValue*2; },
set: function(newValue) { bValue = newValue; }
value: initVal
});
}
Run Code Online (Sandbox Code Playgroud)
进而:
var proxy = {}
proxyVar(proxy, 'a', 10)
console.log(proxy.a) // prints 20
proxy.a = 20
console.log(proxy.a) // prints 40
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10043 次 |
| 最近记录: |