我想通过prototype属性覆盖一个类方法,但是我无法访问'super'关键字。
class A {
foo(){
console.log('foo-foo');
}
}
class B extends A {}
B.prototype.foo = function(){ super.foo() }
// Uncaught SyntaxError: 'super' keyword unexpected here
// what I want:
const b = new B();
b.foo(); // foo-foo
这里的动机是从单独的文件导入新的b.foo,因为它很长,但仍然可以访问A的方法foo。
答案 0 :(得分:0)
你不能在课外使用超级。对不起,这就是语言的方式。您可以使用Object.getPrototypeOf(B.prototype)
替换super。但我认为首先要将一个类分成几个文件。