1

我想将类 ref 定义传递给函数。然后该函数应该使传递的类 ref 扩展另一个类。这是一个例子。我希望看到console.log输出“根构造函数”,但它不会因为InputClass被该行覆盖extends

class Root {
  constructor(){
    console.log('Root constructor');
  }
}

function decorateClass(InputClass){
  class InnerClass {
    constructor(){

    }
  }

  // should extend InputClass but not override
  return class InputClass extends InnerClass{}
}

var ExtendedClass = decorateClass(Root);
var ec = new ExtendedClass();
// Should log 'Root constructor'
4

1 回答 1

0

您的代码正在扩展InnerClass,而不是InputClass您传递给函数的代码。函数参数被完全忽略。

我想你正在寻找

function decorateClass(InputClass){
  class InnerClass extends InputClass {
//                 ^^^^^^^^^^^^^^^^^^
    constructor(){
      super();
    }
  }

  return InnerClass;
}
于 2020-06-12T07:44:10.297 回答