在nodejs, typescript中,我想用另一个对象的方法代替一个对象的方法;为了更好地理解我的问题,我写了下面这个非常简单的例子(实际情况大致相同):
export default class A_01 {
constructor(private variableA1: string) {}
public writeSomething() {
console.log(`${this.variableA1} from class A`);
}
}
import A_01 from "./oop_class_A";
export default class B_01 extends A_01 {
constructor(private variableB1: string) {
super(variableB1);
}
public writeSomething() {
console.log(`${this.variableB1} from class B`);
}
}
import A_01 from "./oop_class_A";
class C_01 {
constructor() {}
run() {
return new A_01("Object A_01 from class C_01"); // cannot modify this object creation!!!
}
}
import A_01 from "./oop_class_A";
import B_01 from "./oop_class_B";
const D_01 = new A_01("from_class_D_01");
D_01.writeSomething();
那么,如何从类B中打印from_class_D_01(而不是来自A类)?const D_01 = new A_01("from_class_D_01") as B_01
但它只是一个类型,我在运行时丢失了它
不确定这是否是您所需要的,这是在创建A_01实例之后覆盖writeSomething
方法的一种非常简单的方法。
const D_01 = new A_01("from_class_D_01")
D_01.writeSomething = B_01.prototype.writeSomething
D_01.writeSomething()
现在它会写"from class "即使它是A_01
的实例