Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const superclass = (...list) =>
- list.reduce((ac, cls) => cls(ac), class {});
- const A = X => class extends (X || class {}) {
- foo() {
- console.log(`fooA`);
- }
- }
- const B = X => class extends (X || class {}) {
- foo() {
- super.foo();
- console.log(`fooB`);
- }
- }
- const C = X => class extends (X || class {}) {
- foo() {
- super.foo();
- console.log(`fooC`);
- }
- }
- class D extends superclass (A, B, C) {
- foo() {
- super.foo();
- console.log(`fooD`);
- }
- }
- const d = new D();
- d.foo()
- // Result: fooA\nfooB\nfooC\fooD
- // based on https://stackoverflow.com/a/35925061
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement