Javascript - 通过原型访问'super'关键字

时间:2018-06-07 23:05:49

标签: javascript ecmascript-6 es6-class

我想通过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。

1 个答案:

答案 0 :(得分:0)

你不能在课外使用超级。对不起,这就是语言的方式。您可以使用Object.getPrototypeOf(B.prototype)替换super。但我认为首先要将一个类分成几个文件。