Если вы действительно хотите использовать ключевое слово super
, это возможно, но вам нужно указать на соответствующий прототип.Другими словами, вы должны вручную пройти через __proto__
цепочку объектов.
class Level1 {
me() { console.log('Level1'); }
}
class Level2 extends Level1 {
me() { console.log('Level2'); }
}
class Level3 extends Level2 {
me() {
super.__proto__.__proto__.__proto__.me();
// ^ ^ ^ reference to Level1 prototype
// | | reference to Level2 prototype
// | reference to Level3 prototype
console.log('Level3');
}
}
const foo = new Level3();
foo.me();
Но, как было сказано ранее, возможно, стоит пересмотреть логику, чтобы избежать такой структуры в вашем коде.