Javascript - получить доступ к ключевому слову «super» через прототип - PullRequest
0 голосов
/ 08 июня 2018

Я хочу переопределить метод класса через свойство 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 изотдельный файл, так как он очень длинный, но все равно сможет обращаться к методу А. foo.

1 Ответ

0 голосов
/ 08 июня 2018

Вы не можете использовать супер вне класса.Извините, это просто как язык.Вы можете заменить супер на Object.getPrototypeOf(B.prototype).Но я бы подумал о том, чтобы сначала разбить класс на несколько файлов.

...