Nat*_*ins 18 javascript inheritance ecmascript-6
试图摆脱ES6 Maps上的自定义get/set功能.目前使用Babel将我的代码转换为ES5.
Chrome Version 41.0.2272.101 m
class MyMap extends Map {
get(key) {
if (!this.has(key)) { throw new Error(...); }
return super.get(key);
}
set(key) {
if (this.has(key)) { throw new Error(...); }
return super.set(key);
}
}
Run Code Online (Sandbox Code Playgroud)
不确定我是否只是语法错误或者我错过了某种类型的实现.但是我收到以下错误:
方法Map.prototype.forEach调用不兼容的接收器
小智 10
Babel明确表示他们不支持扩展内置类.见http://babeljs.io/docs/usage/caveats/#classes.原因并不像"ES5中的限制"那么简单,但是,因为Map
开始时不是ES5功能.似乎Map的实现不支持基本模式,例如
Map.prototype.set.call(mymap, 'key', 1);
Run Code Online (Sandbox Code Playgroud)
这基本上是巴贝尔在这种情况下产生的.问题是,地图,包括V8的实现是过于严格,检查this
在Map.set.call
通话恰恰是一个地图,而不是它的原型链上具有地图.
同样适用于Promise.
归档时间: |
|
查看次数: |
7501 次 |
最近记录: |