如何调用javascript对象的根类方法?

时间:2017-10-09 06:00:24

标签: javascript oop inheritance super

class Animal{
  constructor(){...}
  walk(){ console.log('Animal walking...')}
}

class Mammal extends Animal{
  constructor(){...}
   walk(){console.log('Mammal walking...')}
}

class Cat extends Mammal{
  constructor(){}
  walk(){console.log('Cat walking...')}
}

在上面的类层次结构中,我想从 Cat 对象中调用Animal的 walk()实现

我试过了:

class Cat extends Mammal{
  constructor(){}
  walk(){
     super.super.walk()
  }
}

但我收到错误:

  

未捕获的TypeError:无法读取未定义的属性“walk”

2 个答案:

答案 0 :(得分:1)

您无法从实例外部调用super,只能从正在进行继承的类内部调用。{/ p>

class Cat extends Mammal {
  walk() {
    super.walk()
  }
}

如果您想致电Animal班级'来自walk()课程的Cat方法,请勿在{{1​​}}课程中覆盖它。这样,Mammal就可以从Mammal继承walk()

Animal

答案 1 :(得分:1)

Cat 调用 Animal walk()方法,绕过Mammal的步行()

class Cat extends Mammal{
  walk(){
     Animal.prototype.walk.call(this)
  }
}

Keithtaha

建议