typescript在类的构造函数中通过另一个类的实例挂载另一个类的所有公有方法
可以使用类的继承来实现这个功能。具体步骤如下:
- 定义一个基类,包含需要被挂载的公有方法。
class BaseClass {
public method1() {
// ...
}
public method2() {
// ...
}
// ...
}
- 定义一个需要挂载方法的类,并继承基类。
class MyClass extends BaseClass {
// ...
}
- 在另一个类的构造函数中,通过另一个类的实例,挂载另一个类的所有公有方法。
class AnotherClass {
private myClass: MyClass;
constructor(myClass: MyClass) {
// 挂载所有公有方法
Object.getOwnPropertyNames(MyClass.prototype).forEach(name => {
const method = MyClass.prototype[name];
if (name !== "constructor" && typeof method === "function") {
this[name] = method.bind(myClass);
}
});
}
}
这样,在创建 AnotherClass 的实例时,可以将需要挂载方法的类的实例传入构造函数中,然后就可以通过 AnotherClass 的实例调用被挂载的方法了
原文地址: http://www.cveoy.top/t/topic/hxHT 著作权归作者所有。请勿转载和采集!