Dynamically generated classes at runtime
We all know that javascript is a dynamic scripting language, so it is possible to dynamically create classes (methods) at runtime, of course, as follows:
const name = "name"; // 类名,可以从配置文件/后端获取
const classMap: Record<string, any> = {
};
// 基类,非必须
class Base {
constructor() {
console.log("test");
}
}
new Base();
// 动态创建类
const myClass = eval(`(() => (class ${
name} extends Base {}))()`);
// 保存动态创建的类
classMap[name] = myClass;
console.log(classMap);
// 生成实例
new (classMap[name])();