javascript 通过对象创建动态 class

javascript create dynamic class by object

任务:我想在 ES6 中通过给定的 JSON 对象创建动态 class。

在大量阅读 MDN 网络文档和许多 Whosebug 问题后,我完全不知道如何完成这项工作。

JSON 对象

{
    constructor: {
        name: "someName",
    },
    getter: {
        function1: () => "someOutput",
        function2: () => false,
    }
}

虽然我试图解决这个问题,但我想出了如何使用“Proxy”或“defineProperty[=”创建动态 getter 方法27=]" 但是我应该如何处理构造函数?? :(

我希望有人可以通过提示或示例帮助我。 提前致谢

您可以使用 Proxy 的 "construct" 处理程序方法将构造函数添加到由 Proxy 创建的 class:

const jsonObj = {
    constructor: {
        name: "someName",
    },
    getter: {
        function1: () => "someOutput",
        function2: () => false,
    }
}


function baseClass(obj) {
  for(i in obj){
    this[i] = obj[i]

  }
}

const handler = {
  construct(target, args) {
    return new target(jsonObj.constructor);
  }
};

const NewClass = new Proxy(baseClass, handler);