【问题标题】:Javascript - Get access to 'super' keyword via prototypeJavascript - 通过原型访问“超级”关键字
【发布时间】:2018-11-17 23:05:51
【问题描述】:

我想通过原型属性重写一个类方法,但我无法访问“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。

【问题讨论】:

  • 只注释掉//B.prototype.foo = function(){ super.foo() },它继承自A...

标签: javascript ecmascript-6 es6-class


【解决方案1】:

你不能在课堂之外使用 super。抱歉,语言就是这样。您可以将 super 替换为 Object.getPrototypeOf(B.prototype)。但我首先会认真考虑将一个类拆分为多个文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2011-02-05
    • 2017-02-16
    • 2011-05-08
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多