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);
任务:我想在 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);