javascript按对象创建动态类

时间:2018-06-30 01:33:51

标签: javascript json ecmascript-6 es6-class es6-proxy

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

在MDN网络文档上进行了大量阅读和许多stackoverflow问题之后,我完全困惑如何进行这项工作。

JSON对象

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

尽管我试图解决问题,但我想出了如何使用“ 代理”或“ defineProperty ”创建动态吸气方法的方法,但是我应该如何处理构造函数? ? :(

我希望有人可以帮我一个提示或例子。 预先感谢

1 个答案:

答案 0 :(得分:0)

您可以使用Proxy的“ construct”处理程序方法将构造函数添加到Proxy创建的类中:

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);