在ES6中将一个继承的类复制到另一个
Copy an inherited class to another in ES6
有人知道如何从继承类中获得所有属性,并将当前属性放在ES6的一个对象中吗?
export class MainClass {
constructor(classInstance) {}
myMethodMain {
//doSomhethig
}
}
文件2
class Another extends MainClass {
constructor(config) {
this.name = 'testing';
}
myMethodAnother {
//doSomhethig
}
}
文件3
class RandomClass {
constructor() {
this.name = 'test';
}
myMethodRamdonChild {
//doSomhethig
}
}
文件3
class RandomChild extends RandomClass {
myMethodRamdonChild {
//doSomhethig
}
}
export const myMainClass = new Another(new RandomChild());
我需要在我的MainClass的构造函数复制所有的属性从RandomChild和超类RandomClass和维护当前的属性从我当前的类太。最后,我需要一个具有所有属性的对象。
newObject{
myMethodMain {
//doSomhethig
}
myMethodAnother {
//doSomhethig
}
myMethodRamdonChild {
//doSomhethig
}
myMethodRamdonChild {
//doSomhethig
}
}
我已经尝试使用(_.merge, _.copy, angular.copy, angular.merge, $.merge, Object.assign, Object.merge
)和其他方法。
重要:我不能改变当前的结构
我解决了我的问题。
export const bind = (target) => (obj) => isFunction(target) ? target.bind(obj) : target;
export const pack = (keys) => (obj) => keys.reduce((res, key) => Object.assign(res, {[key]: bind(obj[key])(obj)}), {});
export const getAllProperties = (o) => {
let results = [];
function properties(obj) {
let props, i;
if (obj == null) {
return results;
}
if (typeof obj !== 'object' && typeof obj !== 'function') {
return properties(obj.constructor.prototype);
}
props = Object.getOwnPropertyNames(obj);
i = props.length;
while (i--) {
if (!~results.indexOf(props[i])) {
results.push(props[i]);
}
}
return properties(Object.getPrototypeOf(obj));
}
return properties(o);
};
Object.assign(self, pack(getAllProperties(jmi))(jmi));
self
从我的类的所有属性:)
相关文章:
- 使用Clipboard.js复制span文本
- ZeroClipboard-在复制之前添加到值
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 复制图像路径以单击它
- 从控制器继承了隔离的作用域以生成可重用的指令
- 复制当前url按钮-Javascript
- 具有所有样式的文本正在复制到可编辑文本区域
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- JavaScript”;复制“;HTML表单
- jsPlumb-拖动克隆而不进行复制
- 当使用控制器作为语法时,如何从父指令继承属性
- 如何将给定的curl命令复制为jquery ajax请求
- 以jquery方式继承Javascript
- 如何对映射插件创建的敲除对象进行深度复制
- 使用append时复制内容的DOM
- JavaScript继承:为什么从实例复制
- 复制原型以进行继承
- 对于 JavaScript 的继承,引用或复制父级的原型是否更好
- 为什么在寄生组合继承中需要复制原型
- 在ES6中将一个继承的类复制到另一个