运行时动态生成类

我们都知道javascript是一个动态脚本语言,那能否在运行时动态创建类(方法呢),当然是可以的,如下操作:

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])();
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐