在 JavaScript 中,除了使用 extends 关键字实现继承以外,还可以通过 Object.setPrototypeOf() 方法来实现原型链继承。这种方式在某些情况下可能比使用 extends 更加灵活。

实现步骤:

  1. 定义父类:
class Parent {
  constructor() {}
  methodA() {}
  methodB() {}
}
const parent = new Parent();
  1. 定义子类:
class Child {
  constructor() {
    Object.setPrototypeOf(this, parent);
  }
  methodC() {}
}
const child = new Child();

Child 类的构造函数中,使用 Object.setPrototypeOf(this, parent)Child 的原型设置为 Parent 的实例。这样,Child 类就可以继承 Parent 类原型链上的方法。

  1. 调用方法:
child.methodA();
child.methodB();
child.methodC();

现在可以创建 Child 的实例 child,并调用继承自 Parent 类的方法 methodA()methodB(),以及 Child 类自己的方法 methodC()

代码示例:

class Parent {
  constructor() {}
  methodA() {
    console.log('Parent methodA');
  }
  methodB() {
    console.log('Parent methodB');
  }
}
const parent = new Parent();

class Child {
  constructor() {
    Object.setPrototypeOf(this, parent);
  }
  methodC() {
    console.log('Child methodC');
  }
}
const child = new Child();
child.methodA(); // 输出: Parent methodA
child.methodB(); // 输出: Parent methodB
child.methodC(); // 输出: Child methodC

通过这种方式,我们成功地实现了原型链继承,并让子类 Child 继承了父类 Parent 的方法。


原文地址: https://www.cveoy.top/t/topic/o0Cl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录