我想要对Proxied
ES6类进行子类化。它在Firefox和Chrome中运行良好,但Safari 10会抛出错误:
let SuperClass = class {
constructor() {
console.log('SuperClass constructor')
}
}
let ProxiedSuperClass = new Proxy(SuperClass, {});
let SubClass = class extends ProxiedSuperClass {
constructor() {
super();
console.log('SubClass constructor')
}
}
var s = new SubClass();
// Expected output (Firefox, Chrome):
// SuperClass constructor
// SubClass constructor
// Safari output:
// function is not a constructor (evaluating 'super()')
因此,Safari似乎尝试扩展Proxy
,而Firefox和Chrome扩展SuperClass
。
这里的正确行为是什么?代理一个类是不可能(或定义好的)?或者我可以某种方式暗示Safari做“正确的事情”,即继承SuperClass
而不是Proxy
?