继承链浏览器

选择一个实例,再点一个方法名,观察 JavaScript 从实例出发如何沿着 [[Prototype]] 链逐层搜索。

当前表达式 new Animal().speak()

实例方法查找路径

speak

super.speak() 调用顺序

Animal

静态方法的位置

constructor
class Animal {
  speak() { return "Animal sound"; }
  move() { return "walk"; }
  static kingdom() { return "animalia"; }
}

class Dog extends Animal {
  speak() { return super.speak() + " -> bark"; }
  static category() { return "canine"; }
}

class GuideDog extends Dog {
  speak() { return super.speak() + " -> ready"; }
  assist() { return "guide"; }
  static certify() { return "licensed"; }
}